제출 #1144649

#제출 시각아이디문제언어결과실행 시간메모리
1144649zhasynArt Exhibition (JOI18_art)C++20
0 / 100
0 ms320 KiB
#include <bits/stdc++.h> #define pb push_back #define pf push_front using namespace std; #define F first #define S second typedef long long ll; #define pii pair <int, int> #define pll pair <ll, ll> typedef long double ld; const ll N = 5 * 1e5 + 100, M = 4096 + 10, len = 21, inf = 1e18; const ll mod = 1e9 + 7; mt19937 rng(chrono::steady_clock::now().time_since_epoch().count()); ll um(ll a, ll b){ return (1LL * a * b) % mod; } ll subr(ll a, ll b){ return ((1LL * a - b) % mod + mod) % mod; } pll cur[N]; int main() { ios::sync_with_stdio(false); cin.tie(NULL); ll n, ans = 0, sum = 0; cin >> n; vector <pll> vec; for(ll i = 0, a, b; i < n; i++){ cin >> a >> b; vec.pb({a, b}); } sort(vec.begin(), vec.end()); set <pll> st; for(ll i = 0; i < n; i++){ sum += vec[i].S; //cout << vec[i].F << " "<< vec[i].S << " "<< sum - (vec[i].F - vec[0].F) << endl; cur[i] = {sum - (vec[i].F - vec[0].F), i}; st.insert(cur[i]); } sum = 0; for(ll i = 0; i < n; i++){ pll res = *st.rbegin(); if(i == 0) ans = max(ans, res.F); else ans = max(ans, res.F - cur[i - 1].F); st.erase(cur[i]); } cout << ans; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...