이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
/*DavitMarg*/
#include <iostream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <string>
#include <cstring>
#include <map>
#include <unordered_map>
#include <set>
#include <queue>
#include <iomanip>
#include <bitset>
#include <stack>
#include <cassert>
#include <iterator>
#include <fstream>
#define mod 1000000007ll
#define LL long long
#define LD long double
#define MP make_pair
#define PB push_back
#define all(v) v.begin(), v.end()
#include "prize.h"
using namespace std;
const int N = 200005;
int used[N],n;
vector<int> res[N];
vector<int> Ask(int pos)
{
if (used[pos])
return res[pos];
used[pos] = 1;
return res[pos] = ask(pos);
}
int get(int pos)
{
return Ask(pos)[0] + Ask(pos)[1];
}
int find_best(int nn)
{
n = nn;
int mx = 0, ans = -1;
for (int i = 0; i < min(500, n); i++)
mx = max(mx, get(i));
for (int i = 0; i < n; i++)
{
int now = get(i);
if (now == mx)
{
int l = i, r = n - 1, m, pos;
while (l <= r)
{
m = (l + r) / 2;
if (Ask(m)==Ask(i))
{
pos = m;
l = m + 1;
}
else
r = m - 1;
}
i = pos;
}
else if (now == 0)
{
ans = i;
break;
}
}
return ans;
}
//int main()
//{
//
// return 0;
//}
/*
*/
컴파일 시 표준 에러 (stderr) 메시지
prize.cpp: In function 'int find_best(int)':
prize.cpp:51:2: warning: 'pos' may be used uninitialized in this function [-Wmaybe-uninitialized]
for (int i = 0; i < n; i++)
^~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |