import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class kar {
private static class BitekCardsData {
private int numberOfCards;
private boolean[] beatsAny;
private int[] beatenBy;
private BitekCardsData(int numberOfCards) {
this.numberOfCards = numberOfCards;
this.beatenBy = new int[numberOfCards];
this.beatsAny = new boolean[numberOfCards];
}
}
public static void main(String[] args) throws NumberFormatException, IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int numberOfTests = Integer.parseInt(reader.readLine());
for (int j = 0; j < numberOfTests; ++j) {
BitekCardsData bitekCardsData = readNextTest(reader);
System.out.println(answer(bitekCardsData));
}
}
public static BitekCardsData readNextTest(BufferedReader reader) throws IOException {
StringTokenizer st = new StringTokenizer(reader.readLine());
int numberOfCards = Integer.parseInt(st.nextToken());
BitekCardsData bitekCardsData = new BitekCardsData(numberOfCards);
int numberOfPairs = Integer.parseInt(st.nextToken());
for (int j = 0; j < numberOfPairs; ++j) {
st = new StringTokenizer(reader.readLine());
st.nextToken(); // bajtek card
char fightResult = st.nextToken().charAt(0);
int bitekCard = Integer.parseInt(st.nextToken());
if (fightResult == '<')
bitekCardsData.beatsAny[bitekCard - 1] = true;
else
++bitekCardsData.beatenBy[bitekCard - 1];
}
return bitekCardsData;
}
public static String answer(BitekCardsData bitekCardsData) {
if (isBajtekWinning(bitekCardsData)) {
return "WYGRANA";
} else if (isBitekWinning(bitekCardsData)) {
return "PRZEGRANA";
} else {
return "REMIS";
}
}
public static boolean isBajtekWinning(BitekCardsData bitekCardsData) {
int maxBeatenBy = bitekCardsData.beatenBy[0];
for (int j = 1; j < bitekCardsData.numberOfCards; ++j) {
if (maxBeatenBy < bitekCardsData.beatenBy[j]) {
maxBeatenBy = bitekCardsData.beatenBy[j];
}
}
return maxBeatenBy == bitekCardsData.numberOfCards;
}
public static boolean isBitekWinning(BitekCardsData bitekCardsData) {
for (int j = 0; j < bitekCardsData.numberOfCards; ++j) {
if (!bitekCardsData.beatsAny[j]) {
return false;
}
}
return true;
}
}
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 | import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class kar { private static class BitekCardsData { private int numberOfCards; private boolean[] beatsAny; private int[] beatenBy; private BitekCardsData(int numberOfCards) { this.numberOfCards = numberOfCards; this.beatenBy = new int[numberOfCards]; this.beatsAny = new boolean[numberOfCards]; } } public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); int numberOfTests = Integer.parseInt(reader.readLine()); for (int j = 0; j < numberOfTests; ++j) { BitekCardsData bitekCardsData = readNextTest(reader); System.out.println(answer(bitekCardsData)); } } public static BitekCardsData readNextTest(BufferedReader reader) throws IOException { StringTokenizer st = new StringTokenizer(reader.readLine()); int numberOfCards = Integer.parseInt(st.nextToken()); BitekCardsData bitekCardsData = new BitekCardsData(numberOfCards); int numberOfPairs = Integer.parseInt(st.nextToken()); for (int j = 0; j < numberOfPairs; ++j) { st = new StringTokenizer(reader.readLine()); st.nextToken(); // bajtek card char fightResult = st.nextToken().charAt(0); int bitekCard = Integer.parseInt(st.nextToken()); if (fightResult == '<') bitekCardsData.beatsAny[bitekCard - 1] = true; else ++bitekCardsData.beatenBy[bitekCard - 1]; } return bitekCardsData; } public static String answer(BitekCardsData bitekCardsData) { if (isBajtekWinning(bitekCardsData)) { return "WYGRANA"; } else if (isBitekWinning(bitekCardsData)) { return "PRZEGRANA"; } else { return "REMIS"; } } public static boolean isBajtekWinning(BitekCardsData bitekCardsData) { int maxBeatenBy = bitekCardsData.beatenBy[0]; for (int j = 1; j < bitekCardsData.numberOfCards; ++j) { if (maxBeatenBy < bitekCardsData.beatenBy[j]) { maxBeatenBy = bitekCardsData.beatenBy[j]; } } return maxBeatenBy == bitekCardsData.numberOfCards; } public static boolean isBitekWinning(BitekCardsData bitekCardsData) { for (int j = 0; j < bitekCardsData.numberOfCards; ++j) { if (!bitekCardsData.beatsAny[j]) { return false; } } return true; } } |
English