제출 #820730

#제출 시각아이디문제언어결과실행 시간메모리
820730vjudge1커다란 상품 (IOI17_prize)C++17
20 / 100
3035 ms296 KiB
#include "prize.h"
#include <bits/stdc++.h>

using namespace std;

// ask

map < int, pair < int, int > > mp;

pair < int, int >  check(int i) {
    auto it = mp.find(i);
    if(it != mp.end()) {
        return it->second;
    }
    mp[i];
    it = mp.find(i);
    auto res = ask(i);
    it->second = {res[0], res[1]};
    return it->second;
}

int recur(int l, int r) {
    int m = (l + r) / 2;
    auto [a, b] = check(m);
    if(a + b < 2) {
        return m;
    }
    if(a >= b) {
        return recur(l, m);
    }
    return recur(m, r);
}

int find_best(int n) {
	int l = -1, r = n, m;
    for(; l != r;) {
        m = recur(l, r);    
        auto [a, b] = check(m);
        if(a|b) {
            (a ? r : l) = m;
        } else {
            break;
        }
    }
    return m;
}

컴파일 시 표준 에러 (stderr) 메시지

prize.cpp: In function 'int find_best(int)':
prize.cpp:45:12: warning: 'm' may be used uninitialized in this function [-Wmaybe-uninitialized]
   45 |     return m;
      |            ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...