import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class boh { public static class Monster implements Comparable<Monster> { int num; int d; int a; int pos; public Monster(int num, int d, int a) { super(); this.num = num; this.d = d; this.a = a; this.pos = (d < a ? 3 : (d == a ? 2 : 1)); } @Override public int compareTo(Monster m) { if(pos != m.pos) { return m.pos - pos; } else { if(pos == 3) { return d - m.d; } else if(pos == 2) { return 0; } else { return m.a - a; } } } public String toString() { return "{" + num + "}"; } } public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer tokenizer; tokenizer = new StringTokenizer(reader.readLine()); int n = Integer.parseInt(tokenizer.nextToken()); int z = Integer.parseInt(tokenizer.nextToken()); Monster[] monsters = new Monster[n]; for(int i = 0; i < n; i++) { tokenizer = new StringTokenizer(reader.readLine()); int d = Integer.parseInt(tokenizer.nextToken()); int a = Integer.parseInt(tokenizer.nextToken()); monsters[i] = new Monster(i+1, d, a); } Arrays.sort(monsters); int zTmp = z; boolean possible = true; for(int i = 0; i < n; i++) { zTmp -= monsters[i].d; if(zTmp <= 0) { possible = false; } zTmp += monsters[i].a; } if(possible) {// || true) { System.out.println("TAK"); System.out.print(monsters[0].num); for(int i = 1; i < n; i++) { System.out.print(" " + monsters[i].num); } System.out.println(); } else { System.out.println("NIE"); } } }
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 | import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class boh { public static class Monster implements Comparable<Monster> { int num; int d; int a; int pos; public Monster(int num, int d, int a) { super(); this.num = num; this.d = d; this.a = a; this.pos = (d < a ? 3 : (d == a ? 2 : 1)); } @Override public int compareTo(Monster m) { if(pos != m.pos) { return m.pos - pos; } else { if(pos == 3) { return d - m.d; } else if(pos == 2) { return 0; } else { return m.a - a; } } } public String toString() { return "{" + num + "}"; } } public static void main(String[] args) throws IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer tokenizer; tokenizer = new StringTokenizer(reader.readLine()); int n = Integer.parseInt(tokenizer.nextToken()); int z = Integer.parseInt(tokenizer.nextToken()); Monster[] monsters = new Monster[n]; for(int i = 0; i < n; i++) { tokenizer = new StringTokenizer(reader.readLine()); int d = Integer.parseInt(tokenizer.nextToken()); int a = Integer.parseInt(tokenizer.nextToken()); monsters[i] = new Monster(i+1, d, a); } Arrays.sort(monsters); int zTmp = z; boolean possible = true; for(int i = 0; i < n; i++) { zTmp -= monsters[i].d; if(zTmp <= 0) { possible = false; } zTmp += monsters[i].a; } if(possible) {// || true) { System.out.println("TAK"); System.out.print(monsters[0].num); for(int i = 1; i < n; i++) { System.out.print(" " + monsters[i].num); } System.out.println(); } else { System.out.println("NIE"); } } } |