Submission #1042406

#TimeUsernameProblemLanguageResultExecution timeMemory
1042406Math4Life2020Palembang Bridges (APIO15_bridge)C++17
22 / 100
49 ms7372 KiB
#include <bits/stdc++.h> using namespace std; using ll = long long; using pii = pair<ll,ll>; int main() { ios_base::sync_with_stdio(false); cin.tie(0); ll K,N; cin >> K >> N; vector<pii> v; ll ans = 0; for (ll i=0;i<N;i++) { string p,q; ll s,t; cin >> p >> s >> q >> t; if (p==q) { ans += abs(s-t); } else { ans++; v.push_back({min(s,t),max(s,t)}); } } vector<ll> v2; for (pii p0: v) { v2.push_back(p0.first); v2.push_back(p0.second); } sort(v2.begin(),v2.end()); if (K==1) { for (ll x: v2) { ans += abs(x-v2[v2.size()/2]); } cout << ans; exit(0); } ll emin = 1e18; for (ll a: v2) { ll ec = 0; priority_queue<pii> PQ; //-pos,sign(+1/-1) for (pii p0: v) { ll x = p0.first; ll y = p0.second; ec += abs(a-x)+abs(a-y); if (a<x || a>y) { PQ.push({-a,-1}); PQ.push({-x,1}); PQ.push({-y,1}); PQ.push({-x-y+a,-1}); } } ll xmin = 1e18; ll sp=0; ll sn=0; while (!PQ.empty()) { pii p0 = PQ.top(); PQ.pop(); ll p = -p0.first; ll n = p0.second; xmin = min(xmin,(p*sn-sp)); sp += p*n; sn += n; } emin = min(emin,2*xmin+ec); } cout << (emin+ans); }
#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...