import java.io.InputStream;
import java.io.PrintStream;
import java.util.Scanner;
public class lus {
public static void main(String[] args) {
new lus().executeAll(System.in, System.out);
}
void executeAll(InputStream in, PrintStream out) {
Scanner scanner = new Scanner(in);
int numberOfTests = scanner.nextInt();
for (int i = 0; i < numberOfTests; i++) {
int numberOfProviders = scanner.nextInt();
Rectangle[] offers = new Rectangle[numberOfProviders];
for (int j = 0; j < numberOfProviders; j++) {
offers[j] = new Rectangle(
scanner.nextInt(), scanner.nextInt(),
scanner.nextInt(), scanner.nextInt());
}
out.println(doJob(offers) ? "TAK" : "NIE");
}
}
static class Rectangle {
int minX, maxX;
int minY, maxY;
public Rectangle(int minWidth, int maxWidth, int minHeight, int maxHeight) {
minX = minWidth;
maxX = maxWidth;
minY = minHeight;
maxY = maxHeight;
}
void add(Rectangle other)
{
minX = Math.min(minX, other.minX);
maxX = Math.max(maxX, other.maxX);
minY = Math.min(minY, other.minY);
maxY = Math.max(maxY, other.maxY);
}
@Override
public boolean equals(Object obj) {
Rectangle other = (Rectangle) obj;
return minX == other.minX &&
maxX == other.maxX &&
minY == other.minY &&
maxY == other.maxY;
}
}
boolean doJob(Rectangle[] recs) {
Rectangle expected = new Rectangle(Integer.MAX_VALUE, 0, Integer.MAX_VALUE, 0);
Rectangle biggestSoFar = new Rectangle(Integer.MAX_VALUE, 0, Integer.MAX_VALUE, 0);
for (Rectangle rec : recs){
expected.add(rec);
if (expected.equals(rec))
biggestSoFar = rec;
}
return expected.equals(biggestSoFar);
}
}
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 | import java.io.InputStream; import java.io.PrintStream; import java.util.Scanner; public class lus { public static void main(String[] args) { new lus().executeAll(System.in, System.out); } void executeAll(InputStream in, PrintStream out) { Scanner scanner = new Scanner(in); int numberOfTests = scanner.nextInt(); for (int i = 0; i < numberOfTests; i++) { int numberOfProviders = scanner.nextInt(); Rectangle[] offers = new Rectangle[numberOfProviders]; for (int j = 0; j < numberOfProviders; j++) { offers[j] = new Rectangle( scanner.nextInt(), scanner.nextInt(), scanner.nextInt(), scanner.nextInt()); } out.println(doJob(offers) ? "TAK" : "NIE"); } } static class Rectangle { int minX, maxX; int minY, maxY; public Rectangle(int minWidth, int maxWidth, int minHeight, int maxHeight) { minX = minWidth; maxX = maxWidth; minY = minHeight; maxY = maxHeight; } void add(Rectangle other) { minX = Math.min(minX, other.minX); maxX = Math.max(maxX, other.maxX); minY = Math.min(minY, other.minY); maxY = Math.max(maxY, other.maxY); } @Override public boolean equals(Object obj) { Rectangle other = (Rectangle) obj; return minX == other.minX && maxX == other.maxX && minY == other.minY && maxY == other.maxY; } } boolean doJob(Rectangle[] recs) { Rectangle expected = new Rectangle(Integer.MAX_VALUE, 0, Integer.MAX_VALUE, 0); Rectangle biggestSoFar = new Rectangle(Integer.MAX_VALUE, 0, Integer.MAX_VALUE, 0); for (Rectangle rec : recs){ expected.add(rec); if (expected.equals(rec)) biggestSoFar = rec; } return expected.equals(biggestSoFar); } } |
English