Untitled
unknown
plain_text
2 years ago
6.0 kB
25
Indexable
main import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; class Solution { private final static int CMD_INIT = 100; private final static int CMD_ADD = 200; private final static int CMD_REMOVE = 300; private final static int CMD_QUERY = 400; private final static UserSolution usersolution = new UserSolution(); private static void String2Char(char[] buf, String str) { for (int k = 0; k < str.length(); ++k) buf[k] = str.charAt(k); buf[str.length()] = '\0'; } private static boolean run(BufferedReader br) throws Exception { int q = Integer.parseInt(br.readLine()); int id, grade, score; int cmd, ans, ret; boolean okay = false; for (int i = 0; i < q; ++i) { StringTokenizer st = new StringTokenizer(br.readLine(), " "); cmd = Integer.parseInt(st.nextToken()); switch (cmd) { case CMD_INIT: usersolution.init(); okay = true; break; case CMD_ADD: char[] gender = new char[7]; id = Integer.parseInt(st.nextToken()); grade = Integer.parseInt(st.nextToken()); String2Char(gender, st.nextToken()); score = Integer.parseInt(st.nextToken()); ans = Integer.parseInt(st.nextToken()); ret = usersolution.add(id, grade, gender, score); if (ret != ans) okay = false; break; case CMD_REMOVE: id = Integer.parseInt(st.nextToken()); ans = Integer.parseInt(st.nextToken()); ret = usersolution.remove(id); if (ret != ans) okay = false; break; case CMD_QUERY: int gradeCnt, genderCnt; int[] gradeArr = new int[3]; char[][] genderArr = new char[2][7]; gradeCnt = Integer.parseInt(st.nextToken()); for (int j = 0; j < gradeCnt; ++j) { gradeArr[j] = Integer.parseInt(st.nextToken()); } genderCnt = Integer.parseInt(st.nextToken()); for (int j = 0; j < genderCnt; ++j) { String2Char(genderArr[j], st.nextToken()); } score = Integer.parseInt(st.nextToken()); ans = Integer.parseInt(st.nextToken()); ret = usersolution.query(gradeCnt, gradeArr, genderCnt, genderArr, score); if (ret != ans) okay = false; break; default: okay = false; break; } } return okay; } public static void main(String[] args) throws Exception { int TC, MARK; //System.setIn(new java.io.FileInputStream("res/sample_input.txt")); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine(), " "); TC = Integer.parseInt(st.nextToken()); MARK = Integer.parseInt(st.nextToken()); for (int testcase = 1; testcase <= TC; ++testcase) { int score = run(br) ? MARK : 0; System.out.println("#" + testcase + " " + score); } br.close(); } } solution import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.StringTokenizer; class Solution { private final static int CMD_INIT = 100; private final static int CMD_ADD = 200; private final static int CMD_REMOVE = 300; private final static int CMD_QUERY = 400; private final static UserSolution usersolution = new UserSolution(); private static void String2Char(char[] buf, String str) { for (int k = 0; k < str.length(); ++k) buf[k] = str.charAt(k); buf[str.length()] = '\0'; } private static boolean run(BufferedReader br) throws Exception { int q = Integer.parseInt(br.readLine()); int id, grade, score; int cmd, ans, ret; boolean okay = false; for (int i = 0; i < q; ++i) { StringTokenizer st = new StringTokenizer(br.readLine(), " "); cmd = Integer.parseInt(st.nextToken()); switch (cmd) { case CMD_INIT: usersolution.init(); okay = true; break; case CMD_ADD: char[] gender = new char[7]; id = Integer.parseInt(st.nextToken()); grade = Integer.parseInt(st.nextToken()); String2Char(gender, st.nextToken()); score = Integer.parseInt(st.nextToken()); ans = Integer.parseInt(st.nextToken()); ret = usersolution.add(id, grade, gender, score); if (ret != ans) okay = false; break; case CMD_REMOVE: id = Integer.parseInt(st.nextToken()); ans = Integer.parseInt(st.nextToken()); ret = usersolution.remove(id); if (ret != ans) okay = false; break; case CMD_QUERY: int gradeCnt, genderCnt; int[] gradeArr = new int[3]; char[][] genderArr = new char[2][7]; gradeCnt = Integer.parseInt(st.nextToken()); for (int j = 0; j < gradeCnt; ++j) { gradeArr[j] = Integer.parseInt(st.nextToken()); } genderCnt = Integer.parseInt(st.nextToken()); for (int j = 0; j < genderCnt; ++j) { String2Char(genderArr[j], st.nextToken()); } score = Integer.parseInt(st.nextToken()); ans = Integer.parseInt(st.nextToken()); ret = usersolution.query(gradeCnt, gradeArr, genderCnt, genderArr, score); if (ret != ans) okay = false; break; default: okay = false; break; } } return okay; } public static void main(String[] args) throws Exception { int TC, MARK; //System.setIn(new java.io.FileInputStream("res/sample_input.txt")); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine(), " "); TC = Integer.parseInt(st.nextToken()); MARK = Integer.parseInt(st.nextToken()); for (int testcase = 1; testcase <= TC; ++testcase) { int score = run(br) ? MARK : 0; System.out.println("#" + testcase + " " + score); } br.close(); } } 18 100 200 500 1 male 1250 500 200 400 3 female 2900 400 200 900 2 female 2500 900 200 700 2 male 2500 700 200 600 1 female 1750 600 200 800 3 male 1000 800 200 300 2 female 2000 900 400 2 2 3 2 male female 2500 700 400 3 1 2 3 1 male 1100 500 200 100 2 female 2500 900 400 1 2 2 male female 2200 100 300 300 100 300 200 0 200 300 3 female 3000 300 400 2 1 3 1 female 1800 400 300 800 0 400 3 1 2 3 2 male female 1000 500
Editor is loading...