Submission #341123

#TimeUsernameProblemLanguageResultExecution timeMemory
341123sunshine_unicornCarnival (CEOI14_carnival)Java
0 / 100
247 ms13700 KiB
import java.util.*; import java.io.*; public class carnival { public static void main(String[] args) throws FileNotFoundException { // Scanner in = new Scanner(new File("carnival.in")); Scanner in = new Scanner(System.in); int n = in.nextInt(); int[] prefix = new int[n + 1]; int[] result = new int[n + 1]; int total = 0; prefix[1] = 1; result[1] = 1; total++; for(int i = 2; i <= n; i++) { String s = print(1, i - 1); System.out.println(s + " " + i); int current = in.nextInt(); if(current > prefix[i - 1]) { prefix[i] = prefix[i - 1] + 1; total++; result[i] = total; } else { int color = result[binarySearch(in, i, current)]; prefix[i] = prefix[i - 1]; result[i] = color; } // System.out.println(Arrays.toString(result)); } in.close(); System.out.print("0 "); for(int i = 1; i <= n; i++) { // PrintWriter out = new PrintWriter(new File("carnival.out")); System.out.print(result[i] + " "); // out.println(result); // out.close(); } } static int binarySearch(Scanner in, int i, int current) { int a = 1; int b = i - 1; while(a != b) { int mid = (a + b) / 2; String s1 = print(a, mid); System.out.println(s1); int count1a = in.nextInt(); System.out.println(s1 + " " + i); int count1b = in.nextInt(); String s2 = print(mid + 1, b); System.out.println(s2); int count2a = in.nextInt(); System.out.println(s2 + " " + i); int count2b = in.nextInt(); if(count1a == count1b) b = mid; else if(count2a == count2b) a = mid + 1; } return a; } static String print(int a, int b) { String s = ""; for(int i = a; i <= b; i++) s += i + " "; return s.trim(); } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...