제출 #505946

#제출 시각아이디문제언어결과실행 시간메모리
505946cig32Art Exhibition (JOI18_art)C++17
100 / 100
275 ms32580 KiB
#pragma GCC optimize("Ofast") #include <bits/stdc++.h> using namespace std; mt19937_64 rng((int)std::chrono::steady_clock::now().time_since_epoch().count()); const int MAXN = 3e5 + 10; const int MOD = 1e9 + 7; #define int long long int rnd(int x, int y) { // random number generator int u= uniform_int_distribution<int>(x, y)(rng); return u; } void solve(int tc) { int N; cin >> N; pair<int, int> p[N+1]; for(int i=1; i<=N; i++) cin >> p[i].first >> p[i].second; sort(p+1, p+N+1); int ps[N+1] = {}; for(int i=1; i<=N; i++) ps[i] = ps[i-1] + p[i].second; pair<int, int> mx[N+2]; mx[N+1] = {-1e16, N + 1}; for(int i=N; i>=1; i--) { mx[i] = max(mx[i+1], {ps[i] - p[i].first, i}); } int ans = 0; for(int i=1; i<=N; i++) ans = max(ans, mx[i].first - ps[i-1] + p[i].first); cout << ans << "\n"; } int32_t main(){ ios::sync_with_stdio(0); cin.tie(0); int t = 1; //cin >> t; for(int i=1; i<=t; i++) solve(i); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...