QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#152674#6563. Four SquareBUET_POISSON#WA 1ms3780kbC++202.2kb2023-08-28 16:50:202023-08-28 16:50:21

Judging History

你现在查看的是最新测评结果

  • [2023-08-28 16:50:21]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:3780kb
  • [2023-08-28 16:50:20]
  • 提交

answer

#include <bits/stdc++.h>
 
using namespace std;
#define getbit(n, i) (((n) & (1LL << (i))) != 0) 
#define setbit0(n, i) ((n) & (~(1LL << (i)))) 
#define setbit1(n, i) ((n) | (1LL << (i))) 
#define togglebit(n, i) ((n) ^ (1LL << (i))) 
#define lastone(n) ((n) & (-(n))) 
char gap = 32;
#define int long long
#define ii pair<int, int>

#define ll long long 
#define lll __int128_t
#define pb push_back

void solve() {
    vector<ii> planes;
    int tot_area = 0;
    for (int i=0; i<4; i++) {
        int a, b;
        cin >> a >> b;
        planes.pb({a, b});
        tot_area += a*b;
    }
    
    sort(planes.begin(), planes.end());

    int possible = 0;

    do {
        
        for (int i=0; i<(1<<4); i++) {
            vector<ii> a(planes);
            for (int j=0; j<4; j++) if ( (i>>j) & 1) {
                swap(a[j].first, a[j].second);
            }
            int p = a[0].first + a[1].first;
            int q = a[1].second + a[3].second;
            int r = a[0].second + a[2].second;
            int s = a[2].first + a[3].first;
            if (p == q and q == r and r == s and p*q == tot_area) possible = 1;

            if (a[0].second == (a[1].second + a[2].second + a[3].second) 
                and (a[1].first == a[2].first and a[2].first == a[3].first)
                and (a[0].first + a[1].first == a[0].second)
                and (a[0].first * a[0].first == tot_area)) possible = 1;
            
            if (a[0].first + a[1].first + a[3].first == a[0].second and a[1].first == a[2].first and a[0].second == a[3].second
                and a[0].second == a[1].second + a[2].second and a[0].second * a[0].second == tot_area)
                possible = 1;
            
            if (a[0].second == a[1].second and a[1].second == a[2].second and a[2].second == a[3].second 
                and a[0].second == a[0].first + a[1].first + a[2].first + a[3].first and a[0].second*a[0].second == tot_area)
                possible = 1;
        }

    } while(next_permutation(planes.begin(), planes.end()));

    cout << possible << endl;
}
signed main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    
    solve();
    
}

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 3524kb

input:

1 1
1 1
1 1
1 1

output:

1

result:

ok single line: '1'

Test #2:

score: 0
Accepted
time: 1ms
memory: 3732kb

input:

3 1
3 3
2 2
3 3

output:

0

result:

ok single line: '0'

Test #3:

score: 0
Accepted
time: 0ms
memory: 3464kb

input:

2 8
2 8
2 8
2 8

output:

1

result:

ok single line: '1'

Test #4:

score: 0
Accepted
time: 0ms
memory: 3584kb

input:

5 3
5 5
3 3
3 5

output:

1

result:

ok single line: '1'

Test #5:

score: 0
Accepted
time: 1ms
memory: 3524kb

input:

1 2
4 8
16 32
64 128

output:

0

result:

ok single line: '0'

Test #6:

score: 0
Accepted
time: 1ms
memory: 3560kb

input:

4 4
2 1
4 4
2 1

output:

0

result:

ok single line: '0'

Test #7:

score: 0
Accepted
time: 1ms
memory: 3776kb

input:

995 51
559 565
154 536
56 780

output:

0

result:

ok single line: '0'

Test #8:

score: 0
Accepted
time: 1ms
memory: 3500kb

input:

391 694
540 42
240 937
691 246

output:

0

result:

ok single line: '0'

Test #9:

score: 0
Accepted
time: 1ms
memory: 3780kb

input:

519 411
782 710
299 45
21 397

output:

0

result:

ok single line: '0'

Test #10:

score: 0
Accepted
time: 1ms
memory: 3504kb

input:

96 960
948 18
108 82
371 576

output:

0

result:

ok single line: '0'

Test #11:

score: 0
Accepted
time: 1ms
memory: 3540kb

input:

3 2
4 3
3 1
1 4

output:

0

result:

ok single line: '0'

Test #12:

score: 0
Accepted
time: 1ms
memory: 3492kb

input:

4 3
1 2
4 4
3 2

output:

0

result:

ok single line: '0'

Test #13:

score: 0
Accepted
time: 1ms
memory: 3576kb

input:

4 4
1 3
5 4
2 5

output:

0

result:

ok single line: '0'

Test #14:

score: 0
Accepted
time: 1ms
memory: 3516kb

input:

1000 1000
1000 1000
1000 1000
1000 1000

output:

1

result:

ok single line: '1'

Test #15:

score: 0
Accepted
time: 1ms
memory: 3580kb

input:

1000 999
998 1000
997 1000
997 997

output:

1

result:

ok single line: '1'

Test #16:

score: -100
Wrong Answer
time: 0ms
memory: 3524kb

input:

1 3
3 3
3 3
4 7

output:

0

result:

wrong answer 1st lines differ - expected: '1', found: '0'