QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#441953#8332. Two in Oneucup-team045#WA 16ms3644kbC++201.3kb2024-06-14 23:20:442024-06-14 23:20:45

Judging History

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

  • [2024-06-14 23:20:45]
  • 评测
  • 测评结果:WA
  • 用时:16ms
  • 内存:3644kb
  • [2024-06-14 23:20:44]
  • 提交

answer

#include<iostream>
#include<cstring>
#include<vector>
#include<algorithm>
using namespace std;
using LL = long long;

int main(){

#ifdef LOCAL
    freopen("data.in", "r", stdin);
    freopen("data.out", "w", stdout);
#endif

    cin.tie(0);
    cout.tie(0);
    ios::sync_with_stdio(0);

    int T;
    cin >> T;
    while(T--){
        int n;
        cin >> n;
        vector<int> a(n + 1), cnt(n + 1);
        for(int i = 1; i <= n; i++){
            cin >> a[i];
            cnt[a[i]] += 1;
        }
        int mx1 = 0, mx2 = 0;
        for(int i = 1; i <= n; i++){
            if (cnt[i] >= mx1){
                mx2 = mx1;
                mx1 = cnt[i];
            }
            else if (cnt[i] > mx2){
                mx2 = cnt[i];
            }
        }

        auto solve = [&](int x, int y){
            int ans = max({x, y, x ^ y});
            if (x != 0){
                for(int i = 1; i <= __lg(x); i++){
                    if (x >> i & 1){
                        int t = (x ^ (1 << i)) | ((1 << i) - 1);
                        ans = max(ans, t ^ y);
                    }
                }
            }
            return ans;
        };

        cout << max(solve(mx1, mx2), solve(mx2, mx1)) << '\n';
    }

}

详细

Test #1:

score: 100
Accepted
time: 1ms
memory: 3600kb

input:

1
7
1 2 3 4 3 2 1

output:

3

result:

ok 1 number(s): "3"

Test #2:

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

input:

1
9
1 1 1 1 1 2 2 2 2

output:

7

result:

ok 1 number(s): "7"

Test #3:

score: -100
Wrong Answer
time: 16ms
memory: 3596kb

input:

50
10000
72 65 90 94 67 93 41 43 54 83 31 34 38 37 44 42 92 63 66 79 90 45 41 40 19 54 34 90 13 74 40 77 41 57 74 86 91 79 34 39 21 88 90 57 23 31 8 15 80 27 45 38 53 96 51 82 70 71 19 75 62 95 31 67 99 97 94 29 90 7 95 82 61 98 62 77 43 65 66 30 41 69 38 79 51 9 63 77 13 30 72 70 67 93 92 45 74 50 ...

output:

215
207
212
208
210
212
201
221
206
204
218
228
224
212
210
205
218
211
206
205
230
209
229
197
225
218
215
222
214
203
196
226
225
220
226
209
230
209
204
220
220
209
217
225
222
228
221
211
211
212

result:

wrong answer 1st numbers differ - expected: '255', found: '215'