QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#576056#9308. World CupHaijieTanRE 0ms3660kbC++202.1kb2024-09-19 18:09:562024-09-19 18:09:57

Judging History

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

  • [2024-09-19 18:09:57]
  • 评测
  • 测评结果:RE
  • 用时:0ms
  • 内存:3660kb
  • [2024-09-19 18:09:56]
  • 提交

answer

#include<iostream>
#include<vector>
#include<algorithm>
#include<cmath>
#include<queue>
#include<cstring>
#include<ctime>
#include<random>
#include<deque>
#include<map>
#include<stack>
#include<set>
using namespace std;
#define IOS ios::sync_with_stdio(false);cin.tie(0), cout.tie(0)
#define int long long
#define all(x) x.begin(), x.end()
#define pb push_back
#define lowbit(x) (x & (-x))
const int xy[][2] = { 0,1, 0, -1, 1, 0, -1, 0 };
typedef long long ll;
typedef pair<int, int> PII;
typedef pair<double, double> PDD;
typedef pair<char, char> PCC;
#define x first
#define y second
inline int read();
const int INF = 0x3f3f3f3f, N = 1e5 + 10, MOD = 1e9 + 7, K = 131;
vector<int>a(34), p[9];
int cn = 0;
bool _32() {
    return p[1][0] != cn && p[1][1] != cn;
}
bool _16() {
    if (p[1][2] == cn) {
        return cn > p[2][3];
    }
    else {
        return cn > p[2][2];
    }
}
bool _8() {
    if (p[1][3] == cn) {
        return cn > max(p[3][3], p[4][2]);
    }
    else {
        return cn > max(p[4][3], p[3][2]);
    }
}
bool _4() {
    if (p[1][3] == cn) {
        return cn > max({ p[5][3], p[6][2], p[7][3], p[8][2] });
    }
    else {
        return cn > max({ p[5][2], p[6][3], p[7][2], p[8][3] });
    }
}
void solve() {
    cn = 0;
    bool f = 1;
    for (int i = 1; i <= 8; i++)p[i].clear();
    for (int i = 1; i <= 32; i++) {
        cin >> a[i];
        if (!cn)cn = a[i];
        else if (cn < a[i])f = 0;
        p[i / 4 + i % 4 != 0].pb(a[i]);
        if (i % 4 == 0)sort(all(p[i / 4]));
    }
    if (f)return cout << "1\n", void();
    if (!_32())cout << "32\n";
    else if (!_16())cout << "16\n";
    else if (!_8())cout << "8\n";
    else if (!_4())cout << "4\n";
    else cout << "2\n";
}
signed main() {
    IOS;
    int _ = 1;
    cin >> _;
    while (_--)solve();
    return 0;
}
inline int read()
{
    int x = 0, f = 1; char ch = getchar();
    while (ch < '0' || ch>'9') { if (ch == '-') f = -1; ch = getchar(); }
    while (ch >= '0' && ch <= '9') { x = x * 10 + ch - 48; ch = getchar(); }
    return x * f;
}

Details

Tip: Click on the bar to expand more detailed information

Test #1:

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

input:

1
32 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1

output:

1

result:

ok 1 number(s): "1"

Test #2:

score: -100
Runtime Error

input:

32
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
2 1 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
3 1 2 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
4 1 2 3 5 6 7 8 9 10 11 12 13 14 15 ...

output:


result: