이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
import java.io.*;
import java.util.*;
public class carnival {
public static void main(String[] args) throws IOException, FileNotFoundException {
// BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(new File("carnival.in"))));
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(reader.readLine());
int[] groups = new int[N + 1];
groups[1] = 1;
int groupCount = 1;
int[] groupMainPoint = new int[N + 1];
groupMainPoint[groupCount] = 1;
String startQuery = "1";
int prev = 1;
for(int i = 2; i <= N; i++){
startQuery += " " + String.valueOf(i);
System.out.println(i + " " + startQuery);
System.out.flush();
int newGroups = Integer.parseInt(reader.readLine());
if(newGroups != prev){
groupCount++;
groups[i] = groupCount;
groupMainPoint[groupCount] = i;
} else {
int a = 1;
int b = groupCount;
while(a != b){
int mid = (a + b) / 2;
String query = "";
for (int j = a; j <= mid; j++){
query += " " + String.valueOf(groupMainPoint[j]);
}
query += " " + i;
System.out.println(String.valueOf(mid - a + 2) + query);
System.out.flush();
int currGroupCount = Integer.parseInt(reader.readLine());
if(currGroupCount == (mid - a + 2)){
a = mid + 1;
} else {
b = mid;
}
// b = 1;
}
groups[i] = a;
}
prev = newGroups;
}
String ans = "0";
for(int i = 1; i <= N; i++){
ans += " " + String.valueOf(groups[i]);
}
System.out.println(ans);
System.out.flush();
return;
}
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |