제출 #512830

#제출 시각아이디문제언어결과실행 시간메모리
512830kevinxiehk커다란 상품 (IOI17_prize)C++17
컴파일 에러
0 ms0 KiB
#include "prize.h" #include "bits/stdc++.h" using namespace std; int ddd = 1; int fen[200005][10]; int corr[10]; int n; unordered_map<int, int> aaa; void add(int id, int x, int k) { id++; while(id <= n) { fen[id][k] += x; id += (id & (-id)); } } int sum(int id, int k) { int ans = 0; id++; while(id > 0) { ans += fen[id][k]; id -= (id & (-id)); } return ans; } int getbefore(int id, int k) { int t = 0; for(int i = 1; i < ddd; i++) { if(corr[i] < k) t += sum(id, i); } return t; } void add_val(int a, int k) { if(aaa[k] == 0) {corr[ddd] = k; aaa[k] = ddd++;} add(a, 1, aaa[k]); } bool vi[200005]; vector<int> store[200005]; int now = 0; int dx = 0; int sign = 1; vector<int> aa(int t) { while(vi[t]) { t++; } if(t == n) { t--; while(vi[t]) { t-- } } vi[t] = true; return store[t] = ask(t); } int find_best(int N) { n = N; // int t = 100; while(1) { // cerr << now << '\n'; vector<int> res = aa(now); if(res[0] + res[1] == 0) return now; if(res[0] == getbefore(now, res[0] + res[1])) { sign = 1; dx *= 2; if(dx == 0) dx++; } else { sign = -1; dx /= 2; if(dx == 0) dx++; } add_val(now, res[0] + res[1]); if(sign == 1) dx = min(dx, n - 1 - now); else dx = min(dx, now); now += dx * sign; } // for(int i = 0; i < n; i++) { // vector<int> res = ask(i); // if(res[0] + res[1] == 0) // return i; // } return 0; }

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

prize.cpp: In function 'std::vector<int> aa(int)':
prize.cpp:48:16: error: expected ';' before '}' token
   48 |             t--
      |                ^
      |                ;
   49 |         }
      |         ~