QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#354833 | #6563. Four Square | kevinshan# | AC ✓ | 2ms | 3856kb | C++17 | 2.9kb | 2024-03-16 04:03:53 | 2024-03-16 04:03:55 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define ii pair<int,int>
#define i4 array<int, 4>
#define ff first
#define ss second
int x[4], y[4], a[4000][4000];
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0);
if (fopen("input.in", "r")) {
freopen("input.in", "r", stdin);
freopen("output.out", "w", stdout);
}
int cur = 0;
for (int i=0; i<4; i++) cin>>x[i]>>y[i], cur += x[i] * y[i];
int sq = sqrt(cur);
if (sq * sq != cur) return cout<<0, 0;
for (int i=0; i<16; i++)
{
vector<ii> v;
for (int j=0; j<4; j++) if (i >> j & 1) v.push_back({y[j], x[j]}); else v.push_back({x[j], y[j]});
sort(v.begin(), v.end());
do
{
bool f = 1;
vector<i4> ve;
for (auto [x, y]: v)
{
/* Find upmost line */
int xx = -1, yy = -1;
for (int i=0; i<=sq; i++)
{
int curcol = 0;
vector<int> so;
for (auto rec: ve)
{
if (rec[0] <= i && rec[2] > i)
so.push_back(rec[1]), so.push_back(rec[3]);
}
sort(so.begin(), so.end());
int allow = -1;
for (int j=0; j<so.size(); j+=2)
{
if (so[j] == curcol) curcol = so[j+1];
else
{
allow = so[j] - curcol;
break;
}
}
if (allow == -1) allow = sq - curcol;
if (allow > 0)
{
xx = i;
yy = curcol;
if (allow < y) f = 0;
break;
}
}
// if (xx == -1) for (auto [x, y]: v) cout<<"HHHH: "<<x<<" "<<y<<"\n";
assert(xx != -1);
// cout<<"HEH: "<<xx<<" "<<yy<<"\n";
if (!f) break;
if (xx + x > sq || yy + y > sq)
{
f = 0;
break;
}
ve.push_back({xx, yy, xx+x, yy+y});
sort(ve.begin(), ve.end());
// for (auto x: ve) cout<<"BRUH: "<<x[0]<<" "<<x[1]<<" "<<x[2]<<" "<<x[3]<<"\n";
}
if (f)
{
// for (auto [x, y]: v) cout<<"HUH: "<<x<<" "<<y<<"\n";
// for (auto x: ve) cout<<"BRUH: "<<x[0]<<" "<<x[1]<<" "<<x[2]<<" "<<x[3]<<"\n";
return cout<<1, 0;
}
// break;
} while (next_permutation(v.begin(), v.end()));
}
cout<<0;
}
详细
Test #1:
score: 100
Accepted
time: 1ms
memory: 3556kb
input:
1 1 1 1 1 1 1 1
output:
1
result:
ok single line: '1'
Test #2:
score: 0
Accepted
time: 1ms
memory: 3784kb
input:
3 1 3 3 2 2 3 3
output:
0
result:
ok single line: '0'
Test #3:
score: 0
Accepted
time: 0ms
memory: 3608kb
input:
2 8 2 8 2 8 2 8
output:
1
result:
ok single line: '1'
Test #4:
score: 0
Accepted
time: 0ms
memory: 3608kb
input:
5 3 5 5 3 3 3 5
output:
1
result:
ok single line: '1'
Test #5:
score: 0
Accepted
time: 0ms
memory: 3628kb
input:
1 2 4 8 16 32 64 128
output:
0
result:
ok single line: '0'
Test #6:
score: 0
Accepted
time: 0ms
memory: 3608kb
input:
4 4 2 1 4 4 2 1
output:
0
result:
ok single line: '0'
Test #7:
score: 0
Accepted
time: 0ms
memory: 3632kb
input:
995 51 559 565 154 536 56 780
output:
0
result:
ok single line: '0'
Test #8:
score: 0
Accepted
time: 1ms
memory: 3588kb
input:
391 694 540 42 240 937 691 246
output:
0
result:
ok single line: '0'
Test #9:
score: 0
Accepted
time: 1ms
memory: 3628kb
input:
519 411 782 710 299 45 21 397
output:
0
result:
ok single line: '0'
Test #10:
score: 0
Accepted
time: 1ms
memory: 3624kb
input:
96 960 948 18 108 82 371 576
output:
0
result:
ok single line: '0'
Test #11:
score: 0
Accepted
time: 1ms
memory: 3608kb
input:
3 2 4 3 3 1 1 4
output:
0
result:
ok single line: '0'
Test #12:
score: 0
Accepted
time: 1ms
memory: 3544kb
input:
4 3 1 2 4 4 3 2
output:
0
result:
ok single line: '0'
Test #13:
score: 0
Accepted
time: 1ms
memory: 3856kb
input:
4 4 1 3 5 4 2 5
output:
0
result:
ok single line: '0'
Test #14:
score: 0
Accepted
time: 1ms
memory: 3616kb
input:
1000 1000 1000 1000 1000 1000 1000 1000
output:
1
result:
ok single line: '1'
Test #15:
score: 0
Accepted
time: 2ms
memory: 3628kb
input:
1000 999 998 1000 997 1000 997 997
output:
1
result:
ok single line: '1'
Test #16:
score: 0
Accepted
time: 0ms
memory: 3840kb
input:
1 3 3 3 3 3 4 7
output:
1
result:
ok single line: '1'
Test #17:
score: 0
Accepted
time: 0ms
memory: 3852kb
input:
2 5 5 4 7 1 6 2
output:
1
result:
ok single line: '1'
Test #18:
score: 0
Accepted
time: 0ms
memory: 3780kb
input:
12 2 12 7 7 12 16 4
output:
1
result:
ok single line: '1'
Test #19:
score: 0
Accepted
time: 1ms
memory: 3588kb
input:
7 2 2 14 5 14 7 12
output:
1
result:
ok single line: '1'
Test #20:
score: 0
Accepted
time: 0ms
memory: 3804kb
input:
32 36 5 1 1 37 35 5
output:
1
result:
ok single line: '1'
Test #21:
score: 0
Accepted
time: 1ms
memory: 3852kb
input:
28 30 30 1 31 1 2 30
output:
1
result:
ok single line: '1'
Test #22:
score: 0
Accepted
time: 0ms
memory: 3780kb
input:
66 68 9 11 7 66 9 64
output:
1
result:
ok single line: '1'
Test #23:
score: 0
Accepted
time: 1ms
memory: 3504kb
input:
59 44 25 44 40 32 40 52
output:
1
result:
ok single line: '1'
Test #24:
score: 0
Accepted
time: 0ms
memory: 3608kb
input:
4 4 2 3 4 2 3 2
output:
1
result:
ok single line: '1'