Submission #547323

#TimeUsernameProblemLanguageResultExecution timeMemory
547323tmn2005Art Exhibition (JOI18_art)C++17
0 / 100
0 ms212 KiB
#include<ext/pb_ds/assoc_container.hpp> #include<ext/pb_ds/tree_policy.hpp> #include<bits/stdc++.h> using namespace __gnu_pbds; using namespace std; typedef long long ll; #define fr first #define sc second #define mk make_pair #define pb push_back #define pob pop_back #define pf push_front #define pof pop_front #define int long long #define pii pair<int,int> #define piii pair<int,pii> #define all(s) s.begin(), s.end() #define allr(s) s.rbegin(), s.rend() #define NeedForSpeed ios::sync_with_stdio(0), cin.tie(0) #define ordered_set tree<int, null_type, less_equal<int>, rb_tree_tag, tree_order_statistics_node_update> const int N = 5e5 + 12; int n, m, k, a, b, c, d, pref[N]; vector<pii>v; void solve(){ cin>>n; v.pb({0, 0}); for(int i=0; i<n; i++){ int x, y; cin>>x>>y; v.pb({x, y}); }sort(all(v)); for(int i=1; i<=n; i++){ pref[i] = pref[i-1] + v[i].sc; } int l = 0, res = 0, ans = 0; for(int r=1; r<=n; r++){ ans = max(ans, pref[r] - pref[l-1] - v[r].fr + v[l].fr); while(l < r && ans < pref[r] - pref[l] - v[r].fr + v[l+1].fr){ l++; ans = max(ans, pref[r] - pref[l-1] - v[r].fr + v[l].fr); } //cout<<l<<" "<<r<<endl; res = max(res, ans); } cout<<res<<"\n"; } main(){ NeedForSpeed; int T = 1; // cin >> T; while(T--){ solve(); } return 0; }

Compilation message (stderr)

art.cpp:55:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   55 | main(){
      | ^~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...