제출 #1247957

#제출 시각아이디문제언어결과실행 시간메모리
1247957DeathIsAwe커다란 상품 (IOI17_prize)C++20
0 / 100
25 ms5632 KiB
#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; } } }

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

prize.cpp: In function 'int find_best(int)':
prize.cpp:58:1: warning: control reaches end of non-void function [-Wreturn-type]
   58 | }
      | ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...