제출 #234289

#제출 시각아이디문제언어결과실행 시간메모리
234289Toirov_SadiArt Exhibition (JOI18_art)C++17
0 / 100
5 ms384 KiB
#include<bits/stdc++.h> using namespace std; int n; vector<long long> p; vector<pair<long long, int>> a; int main() { cin >> n; for(int i = 1; i <= n; i ++){ int y; long long x; cin >> x >> y; a.push_back({x, y}); } sort(a.begin(), a.end()); p.resize(n, 0ll); for(int i = 0; i < n; i ++){ if(i > 0) p[i] = p[i - 1]; p[i] += a[i].second; } long long mx = 0ll; for(int i = 0; i < n; i ++){ int l = 0, r = i; while(l < r){ int m = (l + r) / 2; long long sum = p[i]; if(m > 0) sum -= p[m - 1]; if(sum - (a[i].first - a[m].first) >= a[i].second){ r = m; } else{ l = m + 1; } } long long sum = p[i]; if(l > 0) sum -= p[l - 1]; mx = max(mx, sum - (a[i].first - a[l].first)); } cout << mx << "\n"; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...