Submission #592147

#TimeUsernameProblemLanguageResultExecution timeMemory
592147jasminRoads (CEOI20_roads)C++14
15 / 100
17 ms1700 KiB
#include<bits/stdc++.h> using namespace std; #define int long long const int inf=1e18; void subtask2(int n, vector<pair<pair<int,int>, pair<int,int> > >& p, vector<pair<pair<int,int>, pair<int,int> > >& old){ auto compare=[&](int i, int j){ auto a=p[i]; auto b=p[j]; if(a.first<b.first) return true; else if(a.first>b.first) return false; else{ if(a.second<b.second) return true; return false; } }; vector<int> sorted(n); iota(sorted.begin(), sorted.end(), 0); sort(sorted.begin(), sorted.end(), compare); pair<int,int> last={-inf, -inf}; for(int i=0; i<n; i++){ auto a=old[sorted[i]].first; auto b=old[sorted[i]].second; if(last.first!=-inf){ cout << last.first << " " << last.second << " " << a.first << " " << a.second << "\n"; } last=b; } } int length(pair<int,int> a, pair<int,int> b){ int x1=abs(a.first-b.first); int x2=abs(a.second-b.second); int square=x1*x1 + x2*x2; int l=0; int r=square; int ans=0; while(l<=r){ int m=l+(r-l)/2; if(m*m<=square){ ans=m; l=m+1; } else{ r=m-1; } } return ans; } signed main(){ ios_base::sync_with_stdio(false); cin.tie(0); int n; cin >> n; vector<pair<pair<int,int>, pair<int,int> > >p(n); bool s2=true; for(int i=0; i<n; i++){ cin >> p[i].first.first >> p[i].first.second; cin >> p[i].second.first >> p[i].second.second; if(p[i].first>p[i].second){ swap(p[i].first, p[i].second); } if(p[i].first.first!=p[i].second.first) s2=false; } if(s2){ subtask2(n, p, p); return 0; } vector<pair<pair<int,int>, pair<int,int> > >p2=p; for(int i=0; i<n; i++){ pair<int,int> a=p[i].first; pair<int,int> b=p[i].second; int l=length(a, b); pair<int,int> neu; neu.first=a.first; neu.second=a.second+l; p2[i].second=neu; if(p2[i].first>p2[i].second){ swap(p2[i].first, p2[i].second); } } subtask2(n, p2, p); }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...