Submission #1053940

#TimeUsernameProblemLanguageResultExecution timeMemory
1053940aaaaaarrozThe Big Prize (IOI17_prize)C++17
20 / 100
1 ms596 KiB
#include "prize.h" #include<bits/stdc++.h> using namespace std; int nn; int worse = INT_MAX; int find_best(int n) { nn = n; int l = 0, r = nn - 1; int best_index = -1; while (l <= r) { int mid = (l + r) / 2; vector<int> res = ask(mid); int left = res[0]; int right = res[1]; int total_worse = left + right; if (total_worse < worse) { worse = total_worse; best_index = mid; } if (left == 0) { l = mid + 1; // El diamante debe estar en esta posición o hacia la derecha } else if (right == 0) { r = mid - 1; // El diamante debe estar en esta posición o hacia la izquierda } else { // Si hay premios más caros tanto a la izquierda como a la derecha, // nos movemos hacia la izquierda para reducir el rango r = mid - 1; } } return best_index; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...