# |
제출 시각 |
아이디 |
문제 |
언어 |
결과 |
실행 시간 |
메모리 |
787396 |
2023-07-19T06:48:50 Z |
이동현(#10034) |
함박 스테이크 (JOI20_hamburg) |
C++17 |
|
3000 ms |
36500 KB |
#include <bits/stdc++.h>
#pragma GCC optimize("O3")
#pragma GCC optimize("Ofast")
#pragma GCC optimize("unroll-loops")
using namespace std;
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int n, k;
cin >> n >> k;
vector<vector<int>> a(n, vector<int>(4));
for(int i = 0; i < n; ++i){
cin >> a[i][0] >> a[i][1] >> a[i][2] >> a[i][3];
}
auto solve4 = [&](vector<vector<int>>&a, int onex, int oney)->void{
int n = (int)a.size();
if(!n){
for(int i = 0; i < 4; ++i){
cout << onex << ' ' << oney << '\n';
}
exit(0);
}
auto chk = [&](vector<vector<int>>&x, vector<vector<int>> pos){
for(int i = 0; i < (int)x.size(); ++i){
int ok = 0;
for(auto&j:pos){
if(j[0] >= x[i][0] && j[0] <= x[i][2] && j[1] >= x[i][1] && j[1] <= x[i][3]){
ok = 1;
break;
}
}
if(!ok) return 0;
}
return 1;
};
auto solve1 = [&](vector<vector<int>>&x)->vector<int>{
int xp = 1, yp = 1;
for(int i = 0; i < (int)x.size(); ++i){
xp = max(xp, x[i][0]);
yp = max(yp, x[i][1]);
}
if(chk(x, {{xp, yp}})){
return {1, xp, yp};
}
return {0};
};
int xu = (int)2e9, xd = -1, yl = (int)2e9, yr = -1;
for(int i = 0; i < n; ++i){
xu = min(xu, a[i][2]);
xd = max(xd, a[i][0]);
yl = min(yl, a[i][3]);
yr = max(yr, a[i][1]);
}
auto solveline = [&](vector<vector<int>>&x){
vector<int> rv;
sort(x.begin(), x.end(), [&](vector<int>&a, vector<int>&b){return a[1] < b[1];});
for(int i = 0; i < (int)x.size(); ++i){
if(!(int)rv.size() || rv.back() < x[i][0]){
rv.push_back(x[i][1]);
}
}
return rv;
};
if(xd <= xu){
vector<vector<int>> x(n);
for(int i = 0; i < n; ++i){
x[i] = {a[i][1], a[i][3]};
}
auto rv = solveline(x);
if((int)rv.size() <= 3){
for(int i = 0; i < 3; ++i){
cout << xd << ' ' << (i < (int)rv.size() ? rv[i] : rv.back()) << '\n';
}
cout << onex << ' ' << oney << '\n';
exit(0);
}
return;
}
if(yr <= yl){
vector<vector<int>> x(n);
for(int i = 0; i < n; ++i){
x[i] = {a[i][0], a[i][2]};
}
auto rv = solveline(x);
if((int)rv.size() <= 3){
for(int i = 0; i < 3; ++i){
cout << (i < (int)rv.size() ? rv[i] : rv.back()) << ' ' << yl << '\n';
}
cout << onex << ' ' << oney << '\n';
exit(0);
}
return;
}
auto solve2 = [&](vector<vector<int>>&x, int px, int py, int ppx, int ppy){
vector<vector<int>> nxt;
for(auto&i:x){
if(!(px >= i[0] && px <= i[2] && py >= i[1] && py <= i[3])){
nxt.push_back(i);
}
}
auto rv = solve1(nxt);
if(rv[0] == 1){
cout << px << ' ' << py << '\n' << rv[1] << ' ' << rv[2] << '\n' << ppx << ' ' << ppy << '\n';
cout << onex << ' ' << oney << '\n';
exit(0);
}
};
auto solve3 = [&](vector<vector<int>>&x, int px, int py){
vector<vector<int>> nxt;
for(auto&i:x){
if(!(px >= i[0] && px <= i[2] && py >= i[1] && py <= i[3])){
nxt.push_back(i);
}
}
int xu = (int)2e9, yl = (int)2e9, yr = -1;
for(int i = 0; i < (int)nxt.size(); ++i){
xu = min(xu, nxt[i][2]);
yl = min(yl, nxt[i][3]);
yr = max(yr, nxt[i][1]);
}
solve2(nxt, xu, yl, px, py);
solve2(nxt, xu, yr, px, py);
};
solve3(a, xu, yl);
solve3(a, xu, yr);
solve3(a, xd, yl);
solve3(a, xd, yr);
};
int x1 = (int)2e9;
for(int i = 0; i < n; ++i){
x1 = min(x1, a[i][2]);
}
for(int i = 0; i < n; ++i){
vector<vector<int>> nxt;
auto sol = [&](int px, int py){
vector<vector<int>> nxt;
for(auto&i:a){
if(!(px >= i[0] && px <= i[2] && py >= i[1] && py <= i[3])){
nxt.push_back(i);
}
}
solve4(nxt, px, py);
};
sol(x1, a[i][1]);
sol(x1, a[i][3]);
}
return 0;
}
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
468 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
468 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
468 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
29 ms |
648 KB |
Output is correct |
2 |
Correct |
1 ms |
468 KB |
Output is correct |
3 |
Correct |
15 ms |
596 KB |
Output is correct |
4 |
Correct |
1 ms |
468 KB |
Output is correct |
5 |
Correct |
22 ms |
596 KB |
Output is correct |
6 |
Correct |
15 ms |
628 KB |
Output is correct |
7 |
Correct |
979 ms |
816 KB |
Output is correct |
8 |
Correct |
23 ms |
720 KB |
Output is correct |
9 |
Correct |
47 ms |
696 KB |
Output is correct |
10 |
Correct |
34 ms |
596 KB |
Output is correct |
11 |
Correct |
72 ms |
736 KB |
Output is correct |
12 |
Correct |
23 ms |
624 KB |
Output is correct |
13 |
Correct |
54 ms |
720 KB |
Output is correct |
14 |
Correct |
395 ms |
836 KB |
Output is correct |
15 |
Correct |
291 ms |
716 KB |
Output is correct |
16 |
Correct |
99 ms |
736 KB |
Output is correct |
17 |
Correct |
529 ms |
736 KB |
Output is correct |
18 |
Correct |
47 ms |
756 KB |
Output is correct |
19 |
Correct |
314 ms |
752 KB |
Output is correct |
20 |
Correct |
989 ms |
768 KB |
Output is correct |
21 |
Correct |
817 ms |
772 KB |
Output is correct |
22 |
Correct |
101 ms |
772 KB |
Output is correct |
23 |
Correct |
85 ms |
724 KB |
Output is correct |
24 |
Correct |
206 ms |
736 KB |
Output is correct |
25 |
Correct |
300 ms |
736 KB |
Output is correct |
26 |
Correct |
188 ms |
772 KB |
Output is correct |
27 |
Correct |
28 ms |
720 KB |
Output is correct |
28 |
Correct |
61 ms |
596 KB |
Output is correct |
29 |
Correct |
289 ms |
708 KB |
Output is correct |
30 |
Correct |
200 ms |
724 KB |
Output is correct |
31 |
Correct |
471 ms |
724 KB |
Output is correct |
32 |
Correct |
12 ms |
596 KB |
Output is correct |
33 |
Correct |
53 ms |
724 KB |
Output is correct |
34 |
Correct |
46 ms |
736 KB |
Output is correct |
35 |
Correct |
155 ms |
752 KB |
Output is correct |
36 |
Correct |
213 ms |
852 KB |
Output is correct |
37 |
Correct |
1840 ms |
768 KB |
Output is correct |
38 |
Correct |
236 ms |
780 KB |
Output is correct |
39 |
Correct |
712 ms |
740 KB |
Output is correct |
40 |
Correct |
150 ms |
724 KB |
Output is correct |
41 |
Correct |
186 ms |
744 KB |
Output is correct |
42 |
Correct |
785 ms |
740 KB |
Output is correct |
43 |
Correct |
85 ms |
708 KB |
Output is correct |
44 |
Correct |
109 ms |
760 KB |
Output is correct |
45 |
Correct |
66 ms |
716 KB |
Output is correct |
46 |
Correct |
958 ms |
744 KB |
Output is correct |
47 |
Correct |
298 ms |
760 KB |
Output is correct |
48 |
Correct |
16 ms |
720 KB |
Output is correct |
49 |
Correct |
553 ms |
724 KB |
Output is correct |
50 |
Correct |
340 ms |
732 KB |
Output is correct |
51 |
Correct |
1122 ms |
844 KB |
Output is correct |
52 |
Correct |
6 ms |
724 KB |
Output is correct |
53 |
Correct |
20 ms |
768 KB |
Output is correct |
54 |
Correct |
188 ms |
752 KB |
Output is correct |
55 |
Correct |
307 ms |
744 KB |
Output is correct |
56 |
Correct |
758 ms |
740 KB |
Output is correct |
57 |
Correct |
579 ms |
708 KB |
Output is correct |
58 |
Correct |
96 ms |
728 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
468 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
468 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
1 ms |
468 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
29 ms |
648 KB |
Output is correct |
2 |
Correct |
1 ms |
468 KB |
Output is correct |
3 |
Correct |
15 ms |
596 KB |
Output is correct |
4 |
Correct |
1 ms |
468 KB |
Output is correct |
5 |
Correct |
22 ms |
596 KB |
Output is correct |
6 |
Correct |
15 ms |
628 KB |
Output is correct |
7 |
Correct |
979 ms |
816 KB |
Output is correct |
8 |
Correct |
23 ms |
720 KB |
Output is correct |
9 |
Correct |
47 ms |
696 KB |
Output is correct |
10 |
Correct |
34 ms |
596 KB |
Output is correct |
11 |
Correct |
72 ms |
736 KB |
Output is correct |
12 |
Correct |
23 ms |
624 KB |
Output is correct |
13 |
Correct |
54 ms |
720 KB |
Output is correct |
14 |
Correct |
395 ms |
836 KB |
Output is correct |
15 |
Correct |
291 ms |
716 KB |
Output is correct |
16 |
Correct |
99 ms |
736 KB |
Output is correct |
17 |
Correct |
529 ms |
736 KB |
Output is correct |
18 |
Correct |
47 ms |
756 KB |
Output is correct |
19 |
Correct |
314 ms |
752 KB |
Output is correct |
20 |
Correct |
989 ms |
768 KB |
Output is correct |
21 |
Correct |
817 ms |
772 KB |
Output is correct |
22 |
Correct |
101 ms |
772 KB |
Output is correct |
23 |
Correct |
85 ms |
724 KB |
Output is correct |
24 |
Correct |
206 ms |
736 KB |
Output is correct |
25 |
Correct |
300 ms |
736 KB |
Output is correct |
26 |
Correct |
188 ms |
772 KB |
Output is correct |
27 |
Correct |
28 ms |
720 KB |
Output is correct |
28 |
Correct |
61 ms |
596 KB |
Output is correct |
29 |
Correct |
289 ms |
708 KB |
Output is correct |
30 |
Correct |
200 ms |
724 KB |
Output is correct |
31 |
Correct |
471 ms |
724 KB |
Output is correct |
32 |
Correct |
12 ms |
596 KB |
Output is correct |
33 |
Correct |
53 ms |
724 KB |
Output is correct |
34 |
Correct |
46 ms |
736 KB |
Output is correct |
35 |
Correct |
155 ms |
752 KB |
Output is correct |
36 |
Correct |
213 ms |
852 KB |
Output is correct |
37 |
Correct |
1840 ms |
768 KB |
Output is correct |
38 |
Correct |
236 ms |
780 KB |
Output is correct |
39 |
Correct |
712 ms |
740 KB |
Output is correct |
40 |
Correct |
150 ms |
724 KB |
Output is correct |
41 |
Correct |
186 ms |
744 KB |
Output is correct |
42 |
Correct |
785 ms |
740 KB |
Output is correct |
43 |
Correct |
85 ms |
708 KB |
Output is correct |
44 |
Correct |
109 ms |
760 KB |
Output is correct |
45 |
Correct |
66 ms |
716 KB |
Output is correct |
46 |
Correct |
958 ms |
744 KB |
Output is correct |
47 |
Correct |
298 ms |
760 KB |
Output is correct |
48 |
Correct |
16 ms |
720 KB |
Output is correct |
49 |
Correct |
553 ms |
724 KB |
Output is correct |
50 |
Correct |
340 ms |
732 KB |
Output is correct |
51 |
Correct |
1122 ms |
844 KB |
Output is correct |
52 |
Correct |
6 ms |
724 KB |
Output is correct |
53 |
Correct |
20 ms |
768 KB |
Output is correct |
54 |
Correct |
188 ms |
752 KB |
Output is correct |
55 |
Correct |
307 ms |
744 KB |
Output is correct |
56 |
Correct |
758 ms |
740 KB |
Output is correct |
57 |
Correct |
579 ms |
708 KB |
Output is correct |
58 |
Correct |
96 ms |
728 KB |
Output is correct |
59 |
Execution timed out |
3055 ms |
36500 KB |
Time limit exceeded |
60 |
Halted |
0 ms |
0 KB |
- |