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>
#define ll long long
#define pb push_back
#define x first
#define y second
#define sz(u) (int)(u.size())
#define all(u) u.begin(),u.end()
using namespace std;
const int MAXN=2e5;
struct rect
{
int U,D,L,R;
};
vector<pair<int,int>> solveK1(vector<rect> v)
{
int H[2]={1,(int)1e9},V[2]={1,(int)1e9};
for(rect tmp:v)
{
H[0]=max(H[0],tmp.L);
H[1]=min(H[1],tmp.R);
V[0]=max(V[0],tmp.D);
V[1]=min(V[1],tmp.U);
}
if(H[0]<=H[1] && V[0]<=V[1]) return {{H[0],V[0]}};
else return {};
}
vector<pair<int,int>> solveK2(vector<rect> v)
{
int H[2]={1,(int)1e9},V[2]={1,(int)1e9};
for(rect tmp:v)
{
H[0]=max(H[0],tmp.L);
H[1]=min(H[1],tmp.R);
V[0]=max(V[0],tmp.D);
V[1]=min(V[1],tmp.U);
}
for(int x:{0,1})
for(int y:{0,1})
{
vector<rect> tosend;
for(rect tmp:v)
{
if(H[x]>=tmp.L && H[x]<=tmp.R && V[y]>=tmp.D && V[y]<=tmp.U) continue;
tosend.pb(tmp);
}
vector<pair<int,int>> get=solveK1(tosend);
if(sz(get)==0) continue;
return {{H[x],V[y]},get[0]};
}
return {};
}
vector<pair<int,int>> solveK3(vector<rect> v)
{
int H[2]={1,(int)1e9},V[2]={1,(int)1e9};
for(rect tmp:v)
{
H[0]=max(H[0],tmp.L);
H[1]=min(H[1],tmp.R);
V[0]=max(V[0],tmp.D);
V[1]=min(V[1],tmp.U);
}
for(int x:{0,1})
for(int y:{0,1})
{
vector<rect> tosend;
for(rect tmp:v)
{
if(H[x]>=tmp.L && H[x]<=tmp.R && V[y]>=tmp.D && V[y]<=tmp.U) continue;
tosend.pb(tmp);
}
vector<pair<int,int>> get=solveK2(tosend);
if(sz(get)==0) continue;
return {{H[x],V[y]},get[0],get[1]};
}
return {};
}
int main()
{
ios::sync_with_stdio(0); cin.tie(0);
int n,k; cin>>n>>k;
vector<rect> v;
rect tmp;
for(int i=0;i<n;i++)
{
cin>>tmp.L>>tmp.D>>tmp.R>>tmp.U;
v.pb(tmp);
}
vector<pair<int,int>> ans;
if(k==1) ans=solveK1(v);
if(k==2) ans=solveK2(v);
if(k==3) ans=solveK3(v);
for(pair<int,int> pt:ans) cout<<pt.x<<' '<<pt.y<<'\n';
return 0;
}
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |