QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#601296#8332. Two in OnePeterQ#WA 1ms3612kbC++141.2kb2024-09-29 22:09:112024-09-29 22:09:12

Judging History

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

  • [2024-09-29 22:09:12]
  • 评测
  • 测评结果:WA
  • 用时:1ms
  • 内存:3612kb
  • [2024-09-29 22:09:11]
  • 提交

answer

#include <bits/stdc++.h>
using namespace std;
int t, n, max1, max2;
int a[100010];
int b[100010];
void clrb();
void doit()
{
    max1 = 100001, max2 = 100002;
    b[max1] = -1;
    b[max2] = -1;
    cin >> n;
    for (int i = 1; i <= n; ++i)
    {
        cin >> a[i];
        b[a[i]]++;
    }
    for (int i = 1; i <= n; ++i)
    {
        if (b[a[i]] > b[max1])
        {
            max2 = max1;
            max1 = a[i];
        }
        else if (b[a[i]] > b[max2])
        {
            max2 = a[i];
        }
    }
    if (max1 == max2)
    {
        cout << b[max1] << endl;
        clrb();
        return;
    }
    max1 = b[max1];
    max2 = b[max2];
    int ans = max(max1 | max2, max(max1 | max1, max2 | max2));
    int tmp1 = max1 & max2;
    int top = 21;
    for (int i = 20; i >= 0; --i)
    {
        if ((1 << i) & tmp1)
        {
            top = (1 << i) - 1;
            break;
        }
    }
    cout << (max1 | max2 | top) << endl;
    clrb();
}
void clrb()
{
    for (int i = 1; i <= n; ++i)
    {
        b[a[i]] = 0;
    }
}
signed main()
{
    cin >> t;
    while (t--)
    {
        doit();
    }
    return 0;
}

详细

Test #1:

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

input:

1
7
1 2 3 4 3 2 1

output:

3

result:

ok 1 number(s): "3"

Test #2:

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

input:

1
9
1 1 1 1 1 2 2 2 2

output:

5

result:

wrong answer 1st numbers differ - expected: '7', found: '5'