import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
/**
* @author michalsk
*/
public class par {
public static void main(String[] args) throws IOException {
Reader.init(System.in);
int tests = Reader.nextInt();
int test = 0;
while (test < tests) {
boolean fail = false;
int cars = Reader.nextInt();
int x1sO[] = new int[cars];
int x2sO[] = new int[cars];
int hO[] = new int[cars];
int x1sNew[] = new int[cars];
int x2sNew[] = new int[cars];
int hNew[] = new int[cars];
long totalHight = Reader.nextInt();
int carNo = 0;
// read old
while (carNo < cars) {
x1sO[carNo] = Reader.nextInt();
int h1 = Reader.nextInt();
x2sO[carNo] = Reader.nextInt();
int h2 = Reader.nextInt();
hO[carNo] = h2 - h1;
carNo++;
}
// read new
carNo = 0;
while (carNo < cars) {
x1sNew[carNo] = Reader.nextInt();
int h1 = Reader.nextInt();
x2sNew[carNo] = Reader.nextInt();
int h2 = Reader.nextInt();
hNew[carNo] = h2 - h1;
carNo++;
}
test:
for (int i = 0; i < cars; i++) {
int hight = hO[i];
if (2 * hight > totalHight) {
for (int j = 0; i != j && j < cars; j++) {
int h2 = hNew[j];
if (hight + h2 > totalHight) {
int oldCar2x1 = x1sO[j];
int newCar2x1 = x1sNew[j];
int oldCarx1 = x1sO[i];
int newCarx1 = x1sNew[i];
if ((oldCarx1 < oldCar2x1) != (newCarx1 < newCar2x1)) {
fail = true;
break test;
}
}
}
}
}
System.out.println(fail ? "NIE" : "TAK");
test++;
}
}
/** Class taken from http://www.cpe.ku.ac.th/~jim/java-io.html */
static class Reader {
static BufferedReader reader;
static StringTokenizer tokenizer;
/** call this method to initialize reader for InputStream */
static void init(InputStream input) {
reader = new BufferedReader(new InputStreamReader(input));
tokenizer = new StringTokenizer("");
}
/** get next word */
static String next() throws IOException {
while (!tokenizer.hasMoreTokens()) {
tokenizer = new StringTokenizer(reader.readLine());
}
return tokenizer.nextToken();
}
static int nextInt() throws IOException {
return Integer.parseInt(next());
}
}
}
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 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.StringTokenizer; /** * @author michalsk */ public class par { public static void main(String[] args) throws IOException { Reader.init(System.in); int tests = Reader.nextInt(); int test = 0; while (test < tests) { boolean fail = false; int cars = Reader.nextInt(); int x1sO[] = new int[cars]; int x2sO[] = new int[cars]; int hO[] = new int[cars]; int x1sNew[] = new int[cars]; int x2sNew[] = new int[cars]; int hNew[] = new int[cars]; long totalHight = Reader.nextInt(); int carNo = 0; // read old while (carNo < cars) { x1sO[carNo] = Reader.nextInt(); int h1 = Reader.nextInt(); x2sO[carNo] = Reader.nextInt(); int h2 = Reader.nextInt(); hO[carNo] = h2 - h1; carNo++; } // read new carNo = 0; while (carNo < cars) { x1sNew[carNo] = Reader.nextInt(); int h1 = Reader.nextInt(); x2sNew[carNo] = Reader.nextInt(); int h2 = Reader.nextInt(); hNew[carNo] = h2 - h1; carNo++; } test: for (int i = 0; i < cars; i++) { int hight = hO[i]; if (2 * hight > totalHight) { for (int j = 0; i != j && j < cars; j++) { int h2 = hNew[j]; if (hight + h2 > totalHight) { int oldCar2x1 = x1sO[j]; int newCar2x1 = x1sNew[j]; int oldCarx1 = x1sO[i]; int newCarx1 = x1sNew[i]; if ((oldCarx1 < oldCar2x1) != (newCarx1 < newCar2x1)) { fail = true; break test; } } } } } System.out.println(fail ? "NIE" : "TAK"); test++; } } /** Class taken from http://www.cpe.ku.ac.th/~jim/java-io.html */ static class Reader { static BufferedReader reader; static StringTokenizer tokenizer; /** call this method to initialize reader for InputStream */ static void init(InputStream input) { reader = new BufferedReader(new InputStreamReader(input)); tokenizer = new StringTokenizer(""); } /** get next word */ static String next() throws IOException { while (!tokenizer.hasMoreTokens()) { tokenizer = new StringTokenizer(reader.readLine()); } return tokenizer.nextToken(); } static int nextInt() throws IOException { return Integer.parseInt(next()); } } } |
polski