program MajorateProgram;
{$mode objfpc}{$H+}
uses
{$IFDEF UNIX}{$IFDEF UseCThreads}
cthreads,
{$ENDIF}{$ENDIF}
Classes
{ you can add units after this };
Type TLength=Record
Hi,Lo:Longint;
End;
TTab=Array[0..100001] of TLength;
var H,W:TTab;
Function Min(Const A,B:Longint):Longint;
Begin
If A<B Then Result:=A Else Result:=B;
End;
Function Max(Const A,B:Longint):Longint;
Begin
If A>B Then Result:=A Else Result:=B;
End;
Operator =(A,B:TLength):Boolean;
Begin
If (A.Lo=B.Lo) And (A.Hi=B.Hi) Then Result:=True Else Result:=False;
End;
Procedure ReadTest;
var Count, Loop:Longint;
Len, Weg:TLength;
Procedure ReadRecord;
Begin
ReadLn(H[Loop].Lo,H[Loop].Hi, W[Loop].Lo, W[Loop].Hi);
Len.Lo:=Min(H[Loop].Lo,Len.Lo);
Len.Hi:=Max(H[Loop].Hi,Len.Hi);
Weg.Lo:=Min(W[Loop].Lo,Weg.Lo);
Weg.Hi:=Max(W[Loop].Hi,Weg.Hi);
End;
Function Majorate:Boolean;
var Loop:Longint;
Begin
Result:=False;
For Loop:=1 to Count do
If (Len=H[Loop]) And (Weg=W[Loop]) Then Begin
Result:=True;
Break;
End;
End;
Begin
Len.Lo:=MaxLongInt; Len.Hi:=0;
Weg.Lo:=MaxLongInt; Weg.Hi:=0;
ReadLn(Count);
For Loop:=1 to Count do ReadRecord;
If Majorate Then WriteLn('TAK') Else WriteLn('NIE');
End;
Var Count,Loop:Longint;
begin
ReadLn(Count);
For Loop:=1 to Count do ReadTest;
// ReadLn;
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 MajorateProgram; {$mode objfpc}{$H+} uses {$IFDEF UNIX}{$IFDEF UseCThreads} cthreads, {$ENDIF}{$ENDIF} Classes { you can add units after this }; Type TLength=Record Hi,Lo:Longint; End; TTab=Array[0..100001] of TLength; var H,W:TTab; Function Min(Const A,B:Longint):Longint; Begin If A<B Then Result:=A Else Result:=B; End; Function Max(Const A,B:Longint):Longint; Begin If A>B Then Result:=A Else Result:=B; End; Operator =(A,B:TLength):Boolean; Begin If (A.Lo=B.Lo) And (A.Hi=B.Hi) Then Result:=True Else Result:=False; End; Procedure ReadTest; var Count, Loop:Longint; Len, Weg:TLength; Procedure ReadRecord; Begin ReadLn(H[Loop].Lo,H[Loop].Hi, W[Loop].Lo, W[Loop].Hi); Len.Lo:=Min(H[Loop].Lo,Len.Lo); Len.Hi:=Max(H[Loop].Hi,Len.Hi); Weg.Lo:=Min(W[Loop].Lo,Weg.Lo); Weg.Hi:=Max(W[Loop].Hi,Weg.Hi); End; Function Majorate:Boolean; var Loop:Longint; Begin Result:=False; For Loop:=1 to Count do If (Len=H[Loop]) And (Weg=W[Loop]) Then Begin Result:=True; Break; End; End; Begin Len.Lo:=MaxLongInt; Len.Hi:=0; Weg.Lo:=MaxLongInt; Weg.Hi:=0; ReadLn(Count); For Loop:=1 to Count do ReadRecord; If Majorate Then WriteLn('TAK') Else WriteLn('NIE'); End; Var Count,Loop:Longint; begin ReadLn(Count); For Loop:=1 to Count do ReadTest; // ReadLn; end. |
English