Submission #959320

#TimeUsernameProblemLanguageResultExecution timeMemory
959320vjudge1Art Exhibition (JOI18_art)C++17
100 / 100
155 ms21192 KiB
#include <bits/stdc++.h> #define endl '\n' #define mp make_pair #define pb push_back #define f first #define s second #define fo(i,n) for(auto i =0 ; i < n;i++) #define fore(i,l,r) for(auto i = l; i < r;i++) #define forex(i,r,l) for(auto i = r; i >= l; i--) #define ffo(i,n) forex(i,n-1,0) #define all(x) x.begin(),x.end() #define lsb(x) x&(-x) #define sz(x) (int)x.size() #define gcd(a,b) __gcd(a,b) #define vii vector<ii> using namespace std; using ii = pair<int,int>; using ll = long long; using ull = unsigned long long; using vi = vector<ll>; #pragma GCC target ("avx2") #pragma GCC optimization ("O3") #pragma GCC optimization ("unroll-loops") const int N = 5e5 + 7; struct cosa{ ll a,b; bool operator <(const cosa &e){ return a < e.a; } }; void test_case(){ int n; cin >> n; vector<cosa> arr; fo(i,n){ ll a,b; cin >> a >> b; arr.pb({a,b}); }sort(all(arr)); ll ans = -1e18, best = -1e18; fo(i,n){ // fijamos arr[i].a como el max // la formula nos queda S_B's - (max - min) = S_B's + min // encontrar lo que maximice S_B's + min best = max(best, arr[i].a); best += arr[i].b; ans = max(ans, best - arr[i].a); }cout << ans << endl; } int main(){cin.tie(0)->sync_with_stdio(0); int t=1; // cin >> t; while(t--)test_case(); }

Compilation message (stderr)

art.cpp:20: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
   20 | #pragma GCC optimization ("O3")
      | 
art.cpp:21: warning: ignoring '#pragma GCC optimization' [-Wunknown-pragmas]
   21 | #pragma GCC optimization ("unroll-loops")
      |
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...