Untitled
unknown
plain_text
2 years ago
6.0 kB
28
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 500Editor is loading...