Submission #361914

#TimeUsernameProblemLanguageResultExecution timeMemory
361914AnythingWithJCarnival (CEOI14_carnival)Java
100 / 100
935 ms18108 KiB
import java.io.*; import java.util.HashMap; import java.util.TreeSet; import java.util.TreeMap; public class carnival { static BufferedReader br; static TreeMap<Integer, TreeSet<Integer>> costumeToPos; static int i; public static void main(String[] args) throws IOException { br = new BufferedReader(new InputStreamReader(System.in)); int N = Integer.parseInt(br.readLine()); costumeToPos = new TreeMap<>(); costumeToPos.put(1,new TreeSet<>()); costumeToPos.get(1).add(1); for (i=2; i <= N; i++) { System.out.print(i+" "); for (int j = 1; j <= i; j++) { System.out.print(j+" "); } System.out.println(); System.out.flush(); int feedback = Integer.parseInt(br.readLine()); if (feedback == costumeToPos.size()+1) { costumeToPos.put(costumeToPos.lastKey()+1,new TreeSet<>()); costumeToPos.get(costumeToPos.lastKey()).add(i); continue; } int a = 1, b = costumeToPos.lastKey()-1; int ans = 0; while (a <= b) { int mid = (a+b+1)/2; if (works(mid)) { a = mid+1; ans = mid; } else b = mid-1; } costumeToPos.get(ans+1).add(i); } int [] ans = new int [N+1]; for (int num : costumeToPos.keySet()) { for (int n : costumeToPos.get(num)) { ans[n] = num; } } System.out.print(0+" "); for (int i = 1; i <= N; i++) { System.out.print(ans[i]+" "); } System.out.println(); System.out.flush(); } static boolean works (int upTo) throws IOException { System.out.print((upTo+1)+" "); for (int num : costumeToPos.keySet()) { if (num == upTo+1) break; System.out.print(costumeToPos.get(num).first()+" "); } System.out.print(i+" "); System.out.println(); System.out.flush(); int feedback = Integer.parseInt(br.readLine()); if (feedback == upTo+1) return true; else return false; } }
#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...