Submission #435301

#TimeUsernameProblemLanguageResultExecution timeMemory
435301iANikzadPalembang Bridges (APIO15_bridge)C++14
100 / 100
109 ms7976 KiB
#include<bits/stdc++.h> using namespace std; #define pb push_back #define F first #define S second #define debug(x) cerr<<#x<<" :"<<x<<"\n" #define all(x) x.begin(),x.end() #define pii pair<int,int> #define FAST ios_base::sync_with_stdio(false), cin.tie(), cout.tie(); #define int long long typedef long long ll; typedef long double ld; const int maxn = 1e5 + 7; const int mod = 1e9 + 7; const int INF = 1e9 + 1; const int mlog = 20; const int SQ = 400; int ls, rs; priority_queue<int> lpq; priority_queue<int, vector<int>, greater<int>> rpq; int pref[maxn]; bool cmp(pii a, pii b) { return a.first + a.second < b.first + b.second; } void add(int x) { int median = (lpq.size() ? lpq.top() : +INF); if (x <= median) { lpq.push(x); ls += x; } else { rpq.push(x); rs += x; } if (rpq.size() + 1 < lpq.size()) { int nxt = lpq.top(); lpq.pop(); rpq.push(nxt); ls -= nxt; rs += nxt; } else if (lpq.size() < rpq.size()) { int nxt = rpq.top(); rpq.pop(); lpq.push(nxt); rs -= nxt; ls += nxt; } } int32_t main() { FAST; int n, k; cin >> k >> n; int ham = 0; vector<pii> vec = {{0, 0}}; for(int i = 0; i < n; i++) { char a, b; int x, y; cin >> a >> x >> b >> y; if(a == b) ham += abs(x - y); else vec.pb({x, y}); } sort(all(vec), cmp); n = vec.size() - 1; ham += n; ls = rs = 0; for(int i = 1; i <= n; i++) { add(vec[i].F); add(vec[i].S); pref[i] = rs - ls; } int ans = pref[n]; if(k == 2) { while(lpq.size()) lpq.pop(); while(rpq.size()) rpq.pop(); ls = rs = 0; for(int i = n; i; i--) { add(vec[i].F); add(vec[i].S); ans = min(ans, rs - ls + pref[i - 1]); } } cout << ham + ans << "\n"; 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...
#Verdict Execution timeMemoryGrader output
Fetching results...