This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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){
sort(p.begin(), p.end());
pair<int,int> last={-inf, -inf};
for(int i=0; i<n; i++){
auto a=p[i].first;
auto b=p[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);
return 0;
}
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;
p[i].second=neu;
}
subtask2(n, p);
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |