Submission #468598

#TimeUsernameProblemLanguageResultExecution timeMemory
468598Maurimuri80Rice Hub (IOI11_ricehub)C++14
0 / 100
1088 ms588 KiB
#include <cmath> #include <vector> using namespace std; int besthub(int R, int L, int X[], long long B) { vector<long long> ac(R + 1); ac[0] = 0; for (int i = 1; i < ac.size(); i++){ ac[i] = ac[i-1] + X[i-1]; } int min,max,med; min = 1; max = R; while (true) { if (min == max) { return min; } med = (min+max)/2; //hallamos la mitad de los posible y no posible bool possible = false; for (int i = 0; i <= R - med; i++) { int izq = i; int der = i + med - 1; int mid = (izq + der) / 2; long long aux =(mid - izq); long long aux2 = (der - mid); long long rm = X[mid]; long long sum = ((aux - aux2) * rm) - (ac[mid] - ac[izq]) + (ac[der + 1] - ac[mid + 1]); if (sum <= B) { possible = true; break; } } if (possible == true) { min = med; }else{ max = med-1; } } return 1; }

Compilation message (stderr)

ricehub.cpp: In function 'int besthub(int, int, int*, long long int)':
ricehub.cpp:10:21: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   10 |   for (int i = 1; i < ac.size(); i++){
      |                   ~~^~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...