제출 #820771

#제출 시각아이디문제언어결과실행 시간메모리
820771vjudge1커다란 상품 (IOI17_prize)C++17
0 / 100
2 ms344 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 rnd(int a, int b) {
    int c = rand() % b;
    for(; c <= a;) {
        c = rand() % b;
    }
    return c;
}

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

int find_best(int n) {
	srand(time(0));
    int l = -1, r = n, m;
    for(; l + 2 < 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:54:12: warning: 'm' may be used uninitialized in this function [-Wmaybe-uninitialized]
   54 |     return m;
      |            ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...