QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#120331#5750. SiteswapUrgantTeam#WA 2ms6652kbC++231.5kb2023-07-06 16:47:552023-07-06 16:47:57

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-07-06 16:47:57]
  • 评测
  • 测评结果:WA
  • 用时:2ms
  • 内存:6652kb
  • [2023-07-06 16:47:55]
  • 提交

answer

#include <bits/stdc++.h>
#define pb push_back
#define mp make_pair
#define x first
#define y second

using namespace std;

#define int long long

int const maxn = 1e5 + 5;
vector < pair < int, int > > g[maxn];
int bad[maxn], used[maxn], flag = 1, sum = 0, cnt = 0, mask;

void dfs(int v) {
    if (bad[v]) flag = 0;
    used[v] = 1;
    cnt--;
    for (auto [u, w] : g[v]) {
        if (!used[u]) {
            dfs(u);
        }
        mask |= (w % 2);
        cnt++, sum += w;
    }
}

main()
{
 	ios_base::sync_with_stdio(0); cin.tie(0);
    int t;
    cin >> t;
    while (t--) {
        int n, x;
        cin >> n;
        for (int i = 1; i <= n; i++) g[i] = {}, bad[i] = 0, used[i] = 0;
        for (int i = 1; i <= n; i++) {
            cin >> x;
            if (!x) bad[i] = 1;
            else {
                int nxt = (i + x - 1) % n + 1;
                g[i].push_back({nxt, x});
            }
        }
        int l = 0, r = 0, lr = 0, out = 1;
        for (int i = 1; i <= n; i++) {
            if (bad[i] || used[i]) continue;
            flag = 1, sum = 0, cnt = 0, mask = 0;
            dfs(i);
            if (cnt == 0 && flag) {
                assert(sum % n == 0);
                if (mask) lr += sum / n;
                else if (i % 2 == 0) l += sum / n;
                else r += sum / n;
            } else out = 0;
        }
        if (out) cout << r << " " << l << " " << lr << '\n';
        else cout << "0 0 0\n";
    }
	return 0;
}


Details

Tip: Click on the bar to expand more detailed information

Test #1:

score: 100
Accepted
time: 2ms
memory: 6220kb

input:

3
3
1 5 0
6
4 6 4 0 4 0
2
6 4

output:

0 0 2
2 1 0
3 2 0

result:

ok 9 numbers

Test #2:

score: 0
Accepted
time: 2ms
memory: 6652kb

input:

100
10
94 8 4 52 7 53 16 96 29 1
10
23 35 96 34 86 39 16 72 63 96
10
51 2 46 21 15 31 41 28 42 83
10
75 67 64 88 46 98 3 17 14 98
10
24 77 54 48 16 37 23 88 99 84
10
52 93 44 87 84 80 37 22 73 28
10
35 80 96 60 75 19 100 63 54 88
10
38 49 63 68 29 67 3 57 68 48
10
89 57 51 21 61 16 100 73 99 83
10
6...

output:

2 0 34
0 0 56
0 0 36
0 0 57
4 0 51
0 13 47
25 14 28
0 0 49
10 0 55
0 0 30
9 0 48
0 0 48
15 11 22
0 7 34
9 0 39
4 7 26
9 0 56
6 10 49
6 5 32
0 0 45
7 4 44
8 0 46
7 4 60
24 19 0
0 0 57
0 13 28
9 1 37
0 0 58
7 0 38
0 0 40
6 6 21
3 9 31
3 10 51
7 9 28
19 10 39
0 3 51
22 8 29
0 8 40
7 0 51
0 0 40
0 16 45...

result:

ok 300 numbers

Test #3:

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

input:

100
54
386 856 526 874 268 682 718 686 344 116 412 25 82 99 203 496 2 949 757 584 713 137 518 782 485 769 852 483 906 918 152 211 561 355 527 591 585 506 57 49 929 767 317 287 475 186 267 199 227 390 124 373 309 444
85
491 676 471 547 85 660 974 510 349 341 89 557 936 180 632 919 810 887 498 426 644...

output:

0 17 437
0 32 485
0 0 559
4 2 413
0 7 490
2 0 510
0 0 424
0 0 514
0 38 386
1 0 473
0 0 667
4 10 507
22 0 490
0 41 472
0 0 580
0 0 526
0 0 441
0 55 423
0 0 467
0 36 523
0 0 517
0 0 565
0 0 486
0 0 492
0 0 495
0 42 519
2 6 437
47 54 302
0 16 510
21 0 482
46 118 358
3 31 334
30 0 355
54 81 367
40 0 559...

result:

wrong answer 4th numbers differ - expected: '16', found: '0'