Submission #135862

#TimeUsernameProblemLanguageResultExecution timeMemory
135862alexandra_udristoiuThe Big Prize (IOI17_prize)C++14
90 / 100
102 ms508 KiB
#include<iostream>
#include<vector>
#include<cmath>
#include "prize.h"
using namespace std;
int find_best(int n){
    int nr, p, st, dr, mid, r, i, x;
    vector<int> a;
    r = sqrt(n * 1.0);
    x = 0;
    for(i = 0; i <= r; i++){
        a = ask(i);
        if(a[0] == 0 && a[1] == 0){
            return i;
        }
        if(x <= a[1] + a[0]){
            x = a[1] + a[0];
            p = i;
            nr = a[1];
        }
    }
    while(nr > 0){
        st = p + 1;
        dr = n;
        while(st <= dr){
            mid = (st + dr) / 2;
            a = ask(mid);
            if(a[1] == nr){
                st = mid + 1;
            }
            else{
                dr = mid - 1;
            }
        }
        a = ask(st);
        if(a[1] == 0){
            return st;
        }
        p = st;
        nr--;
    }
}

Compilation message (stderr)

prize.cpp: In function 'int find_best(int)':
prize.cpp:42:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
prize.cpp:23:12: warning: 'p' may be used uninitialized in this function [-Wmaybe-uninitialized]
         st = p + 1;
         ~~~^~~~~~~
prize.cpp:40:11: warning: 'nr' may be used uninitialized in this function [-Wmaybe-uninitialized]
         nr--;
         ~~^~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...