제출 #60534

#제출 시각아이디문제언어결과실행 시간메모리
60534istleminPalembang Bridges (APIO15_bridge)C++14
9 / 100
2092 ms748 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 = 0; if(intervals.size()>0){ bestDist = 1e18; sort(all(points)); points.resize(distance(points.begin(), unique(points.begin(), points.end())) ); rep(a,0,points.size()){ rep(b,a,points.size()){ ll dist = 0; rep(i,0,intervals.size()){ ll dist1 = abs(intervals[i].first-points[a])+abs(intervals[i].second-points[a]); ll dist2 = abs(intervals[i].first-points[b])+abs(intervals[i].second-points[b]); dist += min(dist1,dist2); } 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...