#include "prize.h"
#include <bits/stdc++.h>
#define pb push_back
#define mp make_pair
#define ff first
#define ss second
#define ll long long
using namespace std;
bool isloli[200000], visited[200000];
vector<int> resultvec[200000];
void find(int a, int n) {
if (resultvec[a].size() == 0) resultvec[a] = ask(a);
isloli[a] = ((resultvec[a][0] + resultvec[a][1]) >= n / 2);
}
int find_best(int n) {
for (int i=0;i<n;i++) {
visited[i] = false;
}
int left, right, middle, temp;
for (int i=0;i<n;i++) {
if (visited[i]) continue;
find(i, n);
if (resultvec[i][0] + resultvec[i][1] == 0) return i;
if (isloli[i]) {
left = i; right = n;
while (right > left + 1) {
middle = (right + left) / 2;
temp = middle;
while (temp > left) {
find(temp, n);
if (resultvec[temp][0] + resultvec[temp][1] == 0) return temp;
if (!isloli[temp]) temp -= 1;
else break;
}
if (temp == left) {
break;
} else {
if (resultvec[temp][0] == resultvec[i][0]) {
left = middle;
} else {
right = temp;
}
}
}
for (int j=i;j<left+1;j++) {
visited[j] = true;
}
} else {
visited[i] = true;
}
}
cout << 1 / 0;
}
컴파일 시 표준 에러 (stderr) 메시지
prize.cpp: In function 'int find_best(int)':
prize.cpp:58:19: warning: division by zero [-Wdiv-by-zero]
58 | cout << 1 / 0;
| ~~^~~
prize.cpp:58:21: warning: control reaches end of non-void function [-Wreturn-type]
58 | cout << 1 / 0;
| ^
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |