QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#318699#5533. Trickminhnhatnoe0 26ms3896kbC++142.1kb2024-01-31 17:22:112024-01-31 17:22:12

Judging History

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

  • [2024-01-31 17:22:12]
  • 评测
  • 测评结果:0
  • 用时:26ms
  • 内存:3896kb
  • [2024-01-31 17:22:11]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

vector<int> gperm(int n){
    vector<int> p(2*n+1); iota(p.begin(), p.end(), 0);
    shuffle(p.begin(), p.end(), mt19937(24032006));
    return p;
}
struct cplayer{
    cplayer(){
        int n; cin >> n;
        vector<int> p = gperm(n);
        vector<int> a(n), b(n);
        vector<pair<int, int>> b_sorted(n);
        for (int i=0; i<n; i++){
            cin >> a[i];
            b[i] = p[a[i]];
            b_sorted[i] = {b[i], i};
        }
        sort(b_sorted.begin(), b_sorted.end());
        int x = 0;
        for (int i=0; i<n; i++) x = (x + b[i]) % p.size();

        for (int i=0; i<n; i++){
            int y = (x + p.size() - b[i]) % p.size();
            int y1 = y % (n+1), y2 = y / (n+1);
            auto it = lower_bound(b_sorted.begin(), b_sorted.end(), pair<int, int> (y1, -1));
            if (it == b_sorted.end() || it->first != y1 || it->second == i) continue;
            
            int xx = a[i], yy = a[it->second];
            if (xx > yy) swap(xx, yy); // xx < yy
            if (y2) swap(xx, yy);
            cout << xx << " " << yy << "\n";
            return;
        }
    }
};

struct hplayer{
    hplayer(){
        int n; cin >> n;
        vector<int> p = gperm(n);
        
        int v = 0;
        for (int i=0; i<p.size(); i++){
            v = (v + p[i]) % p.size();
        }

        for (int i=0; i<2; i++){
            int xx, yy; cin >> xx >> yy;
            v -= p[xx] + p[yy];
            if (xx > yy) v -= n+1;
        }

        v = (v % signed(p.size()) + signed(p.size())) % p.size();
        cout << find(p.begin(), p.end(), v) - p.begin() << "\n";
    }
};
signed main(){
    cin.tie(0)->sync_with_stdio(0);
    // freopen("trick.in", "r", stdin);
    // freopen("trick.out", "w", stdout);

    int t, r; cin >> t >> r;
    if (r == 1 || r == 2){
        for (int i=0; i<t; i++){
            cplayer();
        }
    }
    else{
        for (int i=0; i<t; i++){
            hplayer();
        }
    }
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 0
Wrong Answer

Test #1:

score: 0
Wrong Answer
time: 26ms = 0ms + 26ms
memory: 0kb,3888kb

input:

12012
1
6
0 1 2 3 4 5
6
0 1 2 3 4 5
6
0 1 2 3 4 5
6
0 1 2 3 4 5
6
0 1 2 3 4 5
6
0 1 2 3 4 5
6
0 1 2 3 4 5
6
0 1 2 3 4 6
6
0 1 2 3 4 6
6
0 1 2 3 4 6
6
0 1 2 3 4 6
6
0 1 2 3 4 6
6
0 1 2 3 4 6
6
0 1 2 3 4 6
6
0 1 2 3 5 6
6
0 1 2 3 5 6
6
0 1 2 3 5 6
6
0 1 2 3 5 6
6
0 1 2 3 5 6
6
0 1 2 3 5 6
6
0 1 2 3 5 ...

output:

3 0
3 0
3 0
3 0
3 0
3 0
3 0
1 2
1 2
1 2
1 2
1 2
1 2
1 2
3 1
3 1
3 1
3 1
3 1
3 1
3 1
0 1
0 1
0 1
0 1
0 1
0 1
0 1
4 0
4 0
4 0
4 0
4 0
4 0
4 0
0 3
0 3
0 3
0 3
0 3
0 3
0 3
1 3
1 3
1 3
1 3
1 3
1 3
1 3
0 1
0 1
0 1
0 1
0 1
0 1
0 1
0 3
0 3
0 3
0 3
0 3
0 3
0 3
0 4
0 4
0 4
0 4
0 4
0 4
0 4
4 5
4 5
4 5
4 5
4 5
...

input:

12012
2
6
7 8 9 10 11 12
6
6 8 9 10 11 12
6
6 7 9 10 11 12
6
6 7 8 10 11 12
6
6 7 8 9 11 12
6
6 7 8 9 10 12
6
6 7 8 9 10 11
6
7 8 9 10 11 12
6
5 8 9 10 11 12
6
5 7 9 10 11 12
6
5 7 8 10 11 12
6
5 7 8 9 11 12
6
5 7 8 9 10 12
6
5 7 8 9 10 11
6
7 8 9 10 11 12
6
4 8 9 10 11 12
6
4 7 9 10 11 12
6
4 7 8 1...

output:

8 9
6 9
10 6
9 6
10 12
9 8
8 9
8 10
5 9
10 5
9 5
10 8
11 7
8 9
9 8
4 9
10 4
9 4
7 10
8 9
11 8
3 9
10 3
9 3
7 9
10 8
8 9
12 10
2 9
10 2
9 2
9 12
10 7
8 9
10 12
1 9
10 1
9 1
12 10
7 10
8 9
8 11
0 9
10 0
9 0
10 7
8 10
8 10
6 10
10 12
6 8
11 6
9 8
9 6
6 11
6 10
8 11
11 8
11 6
6 11
8 9
6 9
11 9
12 10
9 1...

input:

12012
3
6
3 0 8 9
6
3 0 6 9
6
3 0 10 6
6
3 0 9 6
6
3 0 10 12
6
3 0 9 8
6
3 0 8 9
6
1 2 8 10
6
1 2 5 9
6
1 2 10 5
6
1 2 9 5
6
1 2 10 8
6
1 2 11 7
6
1 2 8 9
6
3 1 9 8
6
3 1 4 9
6
3 1 10 4
6
3 1 9 4
6
3 1 7 10
6
3 1 8 9
6
3 1 11 8
6
0 1 3 9
6
0 1 10 3
6
0 1 9 3
6
0 1 7 9
6
0 1 10 8
6
0 1 8 9
6
0 1 12 1...

output:

6
8
9
10
11
12
6
7
8
9
10
11
12
5
7
8
9
10
11
4
5
8
9
10
11
12
3
8
8
9
10
11
12
2
4
8
9
10
11
12
1
12
8
9
10
11
12
12
10
9
10
12
0
1
6
8
12
3
2
10
1
9
0
4
6
1
12
10
7
0
9
5
8
7
6
9
4
4
11
3
10
7
9
10
6
3
2
11
8
12
0
10
1
9
0
4
6
3
10
11
12
2
11
9
5
10
11
12
1
0
7
4
10
11
12
11
9
6
1
10
11
12
3
9
6
1...

result:

wrong answer the card you returned is 8, but expected 7 (test case 2)

Subtask #2:

score: 0
Skipped

Subtask #3:

score: 0
Wrong Answer

Test #11:

score: 0
Wrong Answer
time: 20ms = 0ms + 20ms
memory: 0kb,3896kb

input:

6525
1
6
10 1 11 3 12 6
6
1 7 10 12 5 6
6
0 10 12 7 9 8
6
12 1 8 4 7 11
6
11 8 9 4 10 6
6
0 7 2 3 4 5
6
0 8 3 10 11 6
6
0 1 2 4 7 6
6
0 1 11 9 5 6
6
7 1 12 8 6 5
7
0 1 13 10 12 5 6
7
0 14 2 3 4 12 6
7
11 1 3 8 12 6 13
7
0 1 2 3 13 5 14
7
11 9 10 8 4 14 7
7
0 8 14 3 4 13 11
7
0 10 2 14 8 5 6
7
0 13 2...

output:

1 10
1 12
10 7
4 1
11 10
5 4
11 0
1 0
1 6
10 13
2 14
13 11
1 14
9 11
0 11
0 14
13 0
1 7
10 9
10 13
4 6
1 7
3 12
6 14
3 4
0 9
10 0
8 12
2 16
12 18
3 1
11 0
4 17
18 8
8 13
4 0
4 0
9 0
1 3
12 5
2 11
13 18
4 2
15 9
6 4
3 1
5 0
0 1
4 3
0 3
20 4
21 5
18 1
9 0
14 20
5 2
8 0
8 14
21 11
8 15
4 0
21 11
0 1
8 ...

input:

6525
2
6
0 2 4 5 8 9
6
2 3 4 8 9 11
6
1 2 3 4 5 11
6
0 3 5 6 9 10
6
0 1 3 5 7 12
6
1 6 8 10 11 12
6
2 4 5 7 9 12
6
5 8 9 10 11 12
6
3 4 7 8 10 12
6
0 2 3 4 9 11
7
2 3 4 7 8 9 11
7
1 5 7 8 9 10 13
7
0 4 5 7 9 10 14
7
4 6 7 8 9 10 11
7
0 1 2 3 5 6 13
7
1 2 5 7 9 10 12
7
1 3 4 9 11 12 13
7
1 3 4 6 10 1...

output:

0 4
9 2
11 3
5 3
5 3
10 11
4 2
8 10
4 7
3 2
2 9
1 13
9 4
7 10
3 1
10 5
1 9
4 1
8 10
3 11
1 0
9 0
9 13
1 5
1 8
10 5
4 11
6 3
11 2
10 4
11 1
18 12
9 1
3 0
2 3
11 2
11 16
17 8
1 11
9 4
17 0
20 7
0 17
1 9
17 0
8 2
11 0
8 6
3 2
0 20
2 5
1 3
1 0
20 4
1 11
9 13
18 6
17 10
3 2
5 3
7 0
1 11
7 1
17 2
7 0
2 7
...

input:

6525
3
6
1 10 0 4
6
1 12 9 2
6
10 7 11 3
6
4 1 5 3
6
11 10 5 3
6
5 4 10 11
6
11 0 4 2
6
1 0 8 10
6
1 6 4 7
6
10 13 3 2
7
2 14 2 9
7
13 11 1 13
7
1 14 9 4
7
9 11 7 10
7
0 11 3 1
7
0 14 10 5
7
13 0 1 9
7
1 7 4 1
7
10 9 8 10
7
10 13 3 11
8
4 6 1 0
8
1 7 9 0
8
3 12 9 13
8
6 14 1 5
8
3 4 1 8
8
0 9 10 5
8...

output:

7
0
6
2
2
9
1
12
6
6
8
14
5
2
11
5
11
8
7
1
7
0
13
3
1
0
9
4
3
5
7
1
9
9
2
17
1
15
15
7
16
6
14
13
8
2
19
13
6
17
17
11
1
14
16
13
13
5
20
17
17
15
5
4
8
10
12
12
21
1
8
8
4
15
17
7
15
11
8
9
14
6
0
3
9
18
10
10
1
15
5
19
7
4
22
12
5
6
17
17
6
12
7
9
12
0
22
15
8
13
19
14
5
10
19
9
12
18
7
4
7
16
8
...

result:

wrong answer the card you returned is 12, but expected 3 (test case 8)

Subtask #4:

score: 0
Skipped