#include <bits/stdc++.h>
//#pragma GCC optimize ("O3")
//#pragma GCC optimize ("Ofast")
#define F first
#define S second
#define MT make_tuple
#define MP make_pair
#define SZ(a) ((int)(a).size())
#define PB push_back
#define LBS 20
#define MOD ((long long)1e9+7) //1e9+9
#define LEFT(i) (2*(i))
#define RIGHT(i) (2*(i)+1)
#define PAR(i) ((i)/2)
#define ALL(a) (a).begin(), (a).end()
#define END(s) {cout << s;return;}
using namespace std;
typedef long long ll;
typedef double rat;
typedef long long bi;
typedef pair<ll, ll> ii;
typedef std::vector<ii> vii;
typedef std::map<ll, ll> mii;
typedef bitset<LBS> bis;
typedef std::vector<bis> vbs;
typedef priority_queue<ii, std::vector<ii>, greater<ii> > minpq;
typedef priority_queue<ii, std::vector<ii>, less<ii> > maxpq;
typedef priority_queue<ii> pq;
struct ham{
ll l, d, r, u;
};
template<class T>
void in(T &a){
for(auto &x: a)
cin >> x;
}
template<class T>
void out(T &a, string sep=" "){
for(auto x: a)
cout << x<<sep;
cout << '\n';
}
template<class T>
void err(T &a, string sep=" "){
for(auto x: a)
cerr << x <<sep;
cerr << '\n';
}
std::vector<ham> h;
std::vector<int> ma;
std::vector<ii> ou;
int n, k;
void end(){
for(auto &x: ou)
cout << x.F<<" "<<x.S<<"\n";
exit(0);
}
template<class T>
void pop(T &pq){
while (!pq.empty() && ma[pq.top().S])
pq.pop();
if(pq.empty())
end();
}
void rek(minpq pqxi, maxpq pqxa, minpq pqyi, maxpq pqya, int idx=0){
pop(pqxi);
pop(pqxa);
pop(pqyi);
pop(pqya);
if(idx==k)
return;
ll xmi=pqxi.top().F;
ll xma=pqxa.top().F;
ll ymi=pqyi.top().F;
ll yma=pqya.top().F;
if(xmi>=xma || ymi>=yma){
ou[idx]={xmi,ymi};
for(int i=0; i<n; i++)
if(h[i].l<=xmi && xmi<=h[i].r && h[i].d<=ymi && ymi<=h[i].u)
ma[i]++;
rek(pqxi, pqxa, pqyi, pqya, idx+1);
for(int i=0; i<n; i++)
if(h[i].l<=xmi && xmi<=h[i].r && h[i].d<=ymi && ymi<=h[i].u)
ma[i]--;
}
for(auto &c: {MP(xmi,ymi),MP(xmi,yma),MP(xma,ymi),MP(xma,yma)}){
// std::cerr << c.F<<" "<<c.S << '\n';
ou[idx]=c;
for(int i=0; i<n; i++)
if(h[i].l<=c.F && c.F<=h[i].r && h[i].d<=c.S && c.S<=h[i].u)
ma[i]++;
rek(pqxi, pqxa, pqyi, pqya, idx+1);
for(int i=0; i<n; i++)
if(h[i].l<=c.F && c.F<=h[i].r && h[i].d<=c.S && c.S<=h[i].u)
ma[i]--;
}
if(idx==0 && k==4){
// cerr << xma << " "<<yma<<" "<<xmi<<" "<<ymi<<"\n";
ii vxa={0,1000000000}, vxi={0,1000000000}, vya={0,1000000000}, vyi={0,1000000000};
for(int i=0; i<n; i++){
if(ma[i])
continue;
if(h[i].l<=xma && h[i].r>=xma){
vxa.F=max(vxa.F,h[i].d);
vxa.S=min(vxa.S,h[i].u);
} else if(h[i].r>=xmi && h[i].l<=xmi){
vxi.F=max(vxi.F,h[i].d);
vxi.S=min(vxi.S,h[i].u);
} else if(h[i].d<=yma && h[i].u>=yma){
vya.F=max(vya.F,h[i].l);
vya.S=min(vya.S,h[i].r);
} else if(h[i].u>=ymi && h[i].d<=ymi){
vyi.F=max(vyi.F,h[i].l);
vyi.S=min(vyi.S,h[i].r);
}
}
ou[0]=MP(xma,vxa.F);
ou[1]=MP(xmi,vxi.F);
ou[2]=MP(vya.F, yma);
ou[3]=MP(vyi.F, ymi);
end();
}
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> n >> k;
minpq pqxi, pqyi;
maxpq pqxa, pqya;
h.resize(n);
ou.resize(k);
ma.resize(n,0);
for(int i=0; i<n; i++){
cin >> h[i].l>>h[i].d>>h[i].r>>h[i].u;
pqxi.emplace(h[i].r,i);
pqxa.emplace(h[i].l,i);
pqyi.emplace(h[i].u,i);
pqya.emplace(h[i].d,i);
}
rek(pqxi, pqxa, pqyi, pqya);
}
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
768 KB |
Output is correct |
2 |
Correct |
3 ms |
800 KB |
Output is correct |
3 |
Correct |
2 ms |
768 KB |
Output is correct |
4 |
Correct |
2 ms |
768 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
896 KB |
Output is correct |
2 |
Correct |
3 ms |
900 KB |
Output is correct |
3 |
Correct |
2 ms |
896 KB |
Output is correct |
4 |
Correct |
2 ms |
912 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
1024 KB |
Output is correct |
2 |
Correct |
2 ms |
1024 KB |
Output is correct |
3 |
Correct |
2 ms |
1024 KB |
Output is correct |
4 |
Correct |
2 ms |
1024 KB |
Output is correct |
5 |
Correct |
2 ms |
1024 KB |
Output is correct |
6 |
Correct |
2 ms |
1024 KB |
Output is correct |
7 |
Correct |
2 ms |
1024 KB |
Output is correct |
8 |
Correct |
3 ms |
1048 KB |
Output is correct |
9 |
Correct |
7 ms |
1104 KB |
Output is correct |
10 |
Correct |
6 ms |
1100 KB |
Output is correct |
11 |
Correct |
3 ms |
1036 KB |
Output is correct |
12 |
Correct |
4 ms |
1080 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
1152 KB |
Output is correct |
2 |
Correct |
2 ms |
1152 KB |
Output is correct |
3 |
Correct |
2 ms |
1152 KB |
Output is correct |
4 |
Correct |
2 ms |
1152 KB |
Output is correct |
5 |
Correct |
3 ms |
1152 KB |
Output is correct |
6 |
Correct |
2 ms |
1152 KB |
Output is correct |
7 |
Correct |
3 ms |
1152 KB |
Output is correct |
8 |
Correct |
3 ms |
1152 KB |
Output is correct |
9 |
Correct |
8 ms |
1176 KB |
Output is correct |
10 |
Correct |
5 ms |
1180 KB |
Output is correct |
11 |
Correct |
3 ms |
1184 KB |
Output is correct |
12 |
Correct |
3 ms |
1164 KB |
Output is correct |
13 |
Correct |
19 ms |
1184 KB |
Output is correct |
14 |
Incorrect |
26 ms |
1232 KB |
Output isn't correct |
15 |
Halted |
0 ms |
0 KB |
- |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
768 KB |
Output is correct |
2 |
Correct |
3 ms |
800 KB |
Output is correct |
3 |
Correct |
2 ms |
768 KB |
Output is correct |
4 |
Correct |
2 ms |
768 KB |
Output is correct |
5 |
Correct |
200 ms |
45052 KB |
Output is correct |
6 |
Correct |
189 ms |
45088 KB |
Output is correct |
7 |
Correct |
199 ms |
45272 KB |
Output is correct |
8 |
Correct |
189 ms |
45088 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
896 KB |
Output is correct |
2 |
Correct |
3 ms |
900 KB |
Output is correct |
3 |
Correct |
2 ms |
896 KB |
Output is correct |
4 |
Correct |
2 ms |
912 KB |
Output is correct |
5 |
Correct |
243 ms |
54820 KB |
Output is correct |
6 |
Correct |
284 ms |
57584 KB |
Output is correct |
7 |
Correct |
215 ms |
56020 KB |
Output is correct |
8 |
Correct |
373 ms |
57692 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
1024 KB |
Output is correct |
2 |
Correct |
2 ms |
1024 KB |
Output is correct |
3 |
Correct |
2 ms |
1024 KB |
Output is correct |
4 |
Correct |
2 ms |
1024 KB |
Output is correct |
5 |
Correct |
2 ms |
1024 KB |
Output is correct |
6 |
Correct |
2 ms |
1024 KB |
Output is correct |
7 |
Correct |
2 ms |
1024 KB |
Output is correct |
8 |
Correct |
3 ms |
1048 KB |
Output is correct |
9 |
Correct |
7 ms |
1104 KB |
Output is correct |
10 |
Correct |
6 ms |
1100 KB |
Output is correct |
11 |
Correct |
3 ms |
1036 KB |
Output is correct |
12 |
Correct |
4 ms |
1080 KB |
Output is correct |
13 |
Correct |
218 ms |
67644 KB |
Output is correct |
14 |
Correct |
244 ms |
67864 KB |
Output is correct |
15 |
Correct |
205 ms |
67356 KB |
Output is correct |
16 |
Correct |
242 ms |
68680 KB |
Output is correct |
17 |
Correct |
225 ms |
68092 KB |
Output is correct |
18 |
Correct |
233 ms |
69008 KB |
Output is correct |
19 |
Correct |
253 ms |
65980 KB |
Output is correct |
20 |
Correct |
338 ms |
69404 KB |
Output is correct |
21 |
Correct |
1391 ms |
70348 KB |
Output is correct |
22 |
Correct |
825 ms |
70272 KB |
Output is correct |
23 |
Correct |
569 ms |
70172 KB |
Output is correct |
24 |
Correct |
692 ms |
70248 KB |
Output is correct |
# |
Verdict |
Execution time |
Memory |
Grader output |
1 |
Correct |
2 ms |
1152 KB |
Output is correct |
2 |
Correct |
2 ms |
1152 KB |
Output is correct |
3 |
Correct |
2 ms |
1152 KB |
Output is correct |
4 |
Correct |
2 ms |
1152 KB |
Output is correct |
5 |
Correct |
3 ms |
1152 KB |
Output is correct |
6 |
Correct |
2 ms |
1152 KB |
Output is correct |
7 |
Correct |
3 ms |
1152 KB |
Output is correct |
8 |
Correct |
3 ms |
1152 KB |
Output is correct |
9 |
Correct |
8 ms |
1176 KB |
Output is correct |
10 |
Correct |
5 ms |
1180 KB |
Output is correct |
11 |
Correct |
3 ms |
1184 KB |
Output is correct |
12 |
Correct |
3 ms |
1164 KB |
Output is correct |
13 |
Correct |
19 ms |
1184 KB |
Output is correct |
14 |
Incorrect |
26 ms |
1232 KB |
Output isn't correct |
15 |
Halted |
0 ms |
0 KB |
- |