Submission #60531

#TimeUsernameProblemLanguageResultExecution timeMemory
60531istleminPalembang Bridges (APIO15_bridge)C++14
22 / 100
83 ms22336 KiB
#include <bits/stdc++.h> using namespace std; #define rep(i, a, b) for(ll i = a; i < ll(b); ++i) #define trav(a, v) for(auto& a : v) #define all(x) x.begin(), x.end() #define sz(x) (ll)(x).size() #define D(x) cerr << #x << " = " << x << endl typedef long long ll; typedef pair<ll, ll> pii; typedef vector<ll> vi; int main() { cin.sync_with_stdio(false); ll k,n; ll totDist = 0; vector<pii> intervals; vector<ll> points; cin>>k>>n; rep(i,0,n){ char a,b; ll c,d; cin>>a>>c>>b>>d; if(a!=b){ intervals.push_back(pii(c,d)); points.push_back(c); points.push_back(d); }else{ totDist += abs(c-d); } } ll bestDist = 1e18; if(k==1){ sort(all(points)); ll ahead = points.size()-1; ll behind = 1; ll dist = 0; rep(i,1,points.size()) dist += points[i]-points[0]; bestDist = dist; rep(i,1,points.size()) { ll jump = points[i]-points[i-1]; dist += jump*behind; dist -= jump*ahead; bestDist = min(dist,bestDist); ++behind; --ahead; } }else{ rep(a,0,points.size()){ rep(b,a+1,points.size()){ ll dist = 0; rep(i,0,intervals.size()){ dist += min(abs(intervals[i].first-points[a])+abs(intervals[i].second-points[a]), abs(intervals[i].first-points[b])+abs(intervals[i].second-points[b])); } bestDist = min(dist,bestDist); } } } totDist += bestDist; totDist += intervals.size(); cout<<totDist<<endl; }
#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...