제출 #106697

#제출 시각아이디문제언어결과실행 시간메모리
106697tincamatei휴가 (IOI14_holiday)C++14
0 / 100
5099 ms15964 KiB
#include"holiday.h" #include <bits/stdc++.h> using namespace std; const int MAX_N = 100000; const long long INF = 1LL << 60; struct FirstKStructure { set<pair<int, int> > data; void insert(int x, int i) { data.insert(make_pair(-x, i)); } void erase(int x, int i) { data.erase(make_pair(-x, i)); } long long getFirstK(int k) { int i = 0; long long rez = 0LL; for(auto it: data) { if(i < k) rez = rez - it.first; i++; } return rez; } }; int *attraction; bool twopointers(int n, int start, int d, long long cost) { FirstKStructure *str = new FirstKStructure(); int l = 0; for(int i = 0; i < start; ++i) str->insert(attraction[i], i); for(int r = start; r < n && l <= start; ++r) { int k; long long cost2; str->insert(attraction[r], r); do { k = d - 2 * (r - start) - (start - l); if(k < 0) cost2 = -1; else cost2 = str->getFirstK(k); if(cost2 < cost && k <= r - l + 1) { str->erase(attraction[l], l); ++l; } else if(cost2 >= cost) return true; } while(k <= r - l + 1 && l <= start && l <= r && cost2 < cost); } return false; } bool check(int n, int start, int d, long long cost) { bool rez = false; rez |= twopointers(n, start, d, cost); reverse(attraction, attraction + n); rez |= twopointers(n, n - start - 1, d, cost); reverse(attraction, attraction + n); return rez; } long long int findMaxAttraction(int n, int start, int d, int _attraction[]) { long long st = 0LL, dr = INF; attraction = _attraction; while(dr - st > 1) { long long mid = (st + dr) / 2; if(check(n, start, d, mid)) st = mid; else dr = mid; } return st; }

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

grader.cpp: In function 'int main()':
grader.cpp:7:12: warning: variable 'n_s' set but not used [-Wunused-but-set-variable]
     int i, n_s;
            ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...