Submission #333185

#TimeUsernameProblemLanguageResultExecution timeMemory
333185mohamedsobhi777The Big Prize (IOI17_prize)C++14
0 / 100
19 ms10108 KiB
#include "prize.h" #include <bits/stdc++.h> using namespace std; const int N = 2e5 + 10; vector<int> Qu[200000 + 10]; vector<int> Ask(int i) { if (Qu[i].empty()) Qu[i] = ask(i); return Qu[i]; } int less(int i, int j) { Ask(i); Ask(j); if (Qu[i] == Qu[j]) return 0; if (Qu[i][0] + Qu[i][1] > Qu[j][0] + Qu[j][1]) return 1; } int enough; int solve1(int n) { for (int i = 0; i < n; ++i) { vector<int> ret = Ask(i); if (ret[0] == 0 && ret[1] == 0) return i; } } int freq[200000 + 10]; inline int sum(int i) { return Qu[i][0] + Qu[i][1]; } int find_best(int n) { if (n <= 5000) return solve1(n); for (int i = 0; i < 1000; ++i) { Ask(i); freq[Qu[i][0] + Qu[i][1]]++; if (Qu[i][0] + Qu[i][1] == 0) return i; } int mc = 0, Max = 0; for (int i = 0; i < N; ++i) { if (freq[i] > Max) Max = freq[i], mc = i; } for (int i = 0; i < n; ++i) if (Qu[i][0] + Qu[i][1] != Max) ++enough; for (int i = 1000; i < n; ++i) { Ask(i); if (Qu[i][0] + Qu[i][1] != Max) { if (Qu[i][0] + Qu[i][1] == 0) return i; ++enough; continue; } int lo = i, hi = n - 1; int j = i; int bad = -1; while (lo <= hi) { int mid = (lo + hi) >> 1; Ask(mid); if (sum(mid) != Max || sum(mid) - enough > 0) hi = mid - 1; else j = mid, lo = mid + 1; } i = j; } }

Compilation message (stderr)

prize.cpp: In function 'int find_best(int)':
prize.cpp:75:7: warning: unused variable 'bad' [-Wunused-variable]
   75 |   int bad = -1;
      |       ^~~
prize.cpp:54:6: warning: variable 'mc' set but not used [-Wunused-but-set-variable]
   54 |  int mc = 0, Max = 0;
      |      ^~
prize.cpp: In function 'int less(int, int)':
prize.cpp:25:1: warning: control reaches end of non-void function [-Wreturn-type]
   25 | }
      | ^
prize.cpp: In function 'int solve1(int)':
prize.cpp:36:1: warning: control reaches end of non-void function [-Wreturn-type]
   36 | }
      | ^
prize.cpp: In function 'int find_best(int)':
prize.cpp:87:1: warning: control reaches end of non-void function [-Wreturn-type]
   87 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...