program lustra; var skrajne_wymiary : Array [1..4] of longint; porownanie_ze_skrajnym : Array [1..4] of integer; //-1 - skrajne 'szersze', 0 - takie samo, 1 - 'wezsze' ile_zakladow, ile_testow, dlugosc_liczby : longint; i, j, k : longint; wejscie : string; poczatek, wymiar : longint; czy_istnieje : boolean; begin readln(wejscie); val(wejscie, ile_testow); for i := 1 to ile_testow do begin skrajne_wymiary[1] := 1000000001; skrajne_wymiary[2] := 0; skrajne_wymiary[3] := 1000000001; skrajne_wymiary[4] := 0; readln(wejscie); val(wejscie, ile_zakladow); for j := 1 to ile_zakladow do begin readln(wejscie); poczatek := 1; for k := 1 to 4 do begin dlugosc_liczby := 0; while wejscie[poczatek + dlugosc_liczby] in ['0'..'9'] do inc(dlugosc_liczby); val(Copy(wejscie, poczatek, dlugosc_liczby), wymiar); poczatek := poczatek + dlugosc_liczby + 1; if k in [1, 3] then begin if wymiar < skrajne_wymiary[k] then begin porownanie_ze_skrajnym[k] := 1; skrajne_wymiary[k] := wymiar; end else if wymiar = skrajne_wymiary[k] then porownanie_ze_skrajnym[k] := 0 else porownanie_ze_skrajnym[k] := -1; end else begin if wymiar > skrajne_wymiary[k] then begin porownanie_ze_skrajnym[k] := 1; skrajne_wymiary[k] := wymiar; end else if wymiar = skrajne_wymiary[k] then porownanie_ze_skrajnym[k] := 0 else porownanie_ze_skrajnym[k] := -1; end; end; if (porownanie_ze_skrajnym[1] >= 0) AND (porownanie_ze_skrajnym[2] >= 0) AND (porownanie_ze_skrajnym[3] >= 0) AND (porownanie_ze_skrajnym[4] >= 0) then czy_istnieje := true else czy_istnieje := czy_istnieje AND (porownanie_ze_skrajnym[1] <= 0) AND (porownanie_ze_skrajnym[2] <= 0) AND (porownanie_ze_skrajnym[3] <= 0) AND (porownanie_ze_skrajnym[4] <= 0); end; if czy_istnieje then writeln('TAK') else writeln('NIE'); end; end.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | program lustra; var skrajne_wymiary : Array [1..4] of longint; porownanie_ze_skrajnym : Array [1..4] of integer; //-1 - skrajne 'szersze', 0 - takie samo, 1 - 'wezsze' ile_zakladow, ile_testow, dlugosc_liczby : longint; i, j, k : longint; wejscie : string; poczatek, wymiar : longint; czy_istnieje : boolean; begin readln(wejscie); val(wejscie, ile_testow); for i := 1 to ile_testow do begin skrajne_wymiary[1] := 1000000001; skrajne_wymiary[2] := 0; skrajne_wymiary[3] := 1000000001; skrajne_wymiary[4] := 0; readln(wejscie); val(wejscie, ile_zakladow); for j := 1 to ile_zakladow do begin readln(wejscie); poczatek := 1; for k := 1 to 4 do begin dlugosc_liczby := 0; while wejscie[poczatek + dlugosc_liczby] in ['0'..'9'] do inc(dlugosc_liczby); val(Copy(wejscie, poczatek, dlugosc_liczby), wymiar); poczatek := poczatek + dlugosc_liczby + 1; if k in [1, 3] then begin if wymiar < skrajne_wymiary[k] then begin porownanie_ze_skrajnym[k] := 1; skrajne_wymiary[k] := wymiar; end else if wymiar = skrajne_wymiary[k] then porownanie_ze_skrajnym[k] := 0 else porownanie_ze_skrajnym[k] := -1; end else begin if wymiar > skrajne_wymiary[k] then begin porownanie_ze_skrajnym[k] := 1; skrajne_wymiary[k] := wymiar; end else if wymiar = skrajne_wymiary[k] then porownanie_ze_skrajnym[k] := 0 else porownanie_ze_skrajnym[k] := -1; end; end; if (porownanie_ze_skrajnym[1] >= 0) AND (porownanie_ze_skrajnym[2] >= 0) AND (porownanie_ze_skrajnym[3] >= 0) AND (porownanie_ze_skrajnym[4] >= 0) then czy_istnieje := true else czy_istnieje := czy_istnieje AND (porownanie_ze_skrajnym[1] <= 0) AND (porownanie_ze_skrajnym[2] <= 0) AND (porownanie_ze_skrajnym[3] <= 0) AND (porownanie_ze_skrajnym[4] <= 0); end; if czy_istnieje then writeln('TAK') else writeln('NIE'); end; end. |