Submission #945010

# Submission time Handle Problem Language Result Execution time Memory
945010 2024-03-13T09:51:50 Z itslq Chameleon's Love (JOI20_chameleon) C++17
40 / 100
15 ms 344 KB
#include "chameleon.h"
#include <bits/stdc++.h>
using namespace std;

void answer(int a, int b) {
    Answer(++a, ++b);
}

vector<int> without(int a, int b, int N) {
    vector<int> ans;
    ++a; ++b;
    for (int i = 1; i <= 2 * N; i++) {
        if (i != a && i != b) {
            ans.push_back(i);
        }
    }
    return ans;
}

void solve(int N) {
    vector<bool> done(2 * N);

    for (int i = 0; i < 2 * N; i++) {
        if (done[i]) continue;
        for (int j = 0; j < i; j++) {
            if (done[j]) continue;
            if (Query(vector<int>{i + 1, j + 1}) == 1) {
                done[i] = done[j] = 1;
                answer(i, j);
                break;
            }
        }
    }
}

void Solve(int N) {
    if (N > 50) {
        solve(N);
        return;
    }

    vector<bool> done(2 * N);
    vector<vector<int>> crit(2 * N);

    for (int i = 0; i < 2 * N; i++) {
        for (int j = 0; j < i; j++) {
            if (Query(vector<int>{i + 1, j + 1}) == 1) {
                crit[i].push_back(j);
                crit[j].push_back(i);
            }
        }
    }

    for (int i = 0; i < 2 * N; i++) {
        if (done[i]) continue;

        for (int j = 0; j < (signed) crit[i].size(); j++) {
            if (done[crit[i][j]]) continue;

            if (Query(without(i, crit[i][j], N)) <= N - 1) {
                answer(i, crit[i][j]);
                done[crit[i][j]] = 1;
                done[i] = 1;
            }
        }
    }
}
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Incorrect 15 ms 344 KB Wrong Answer [3]
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Correct 0 ms 344 KB Output is correct
6 Correct 0 ms 344 KB Output is correct
7 Correct 1 ms 344 KB Output is correct
8 Correct 0 ms 344 KB Output is correct
9 Correct 0 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Correct 0 ms 344 KB Output is correct
4 Correct 0 ms 344 KB Output is correct
5 Correct 0 ms 344 KB Output is correct
6 Correct 0 ms 344 KB Output is correct
7 Correct 1 ms 344 KB Output is correct
8 Correct 0 ms 344 KB Output is correct
9 Correct 0 ms 344 KB Output is correct
10 Correct 1 ms 344 KB Output is correct
11 Correct 1 ms 344 KB Output is correct
12 Correct 1 ms 344 KB Output is correct
13 Correct 1 ms 344 KB Output is correct
14 Correct 1 ms 344 KB Output is correct
15 Correct 1 ms 344 KB Output is correct
16 Correct 1 ms 344 KB Output is correct
17 Correct 1 ms 344 KB Output is correct
18 Correct 1 ms 344 KB Output is correct
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Incorrect 15 ms 344 KB Wrong Answer [3]
4 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 0 ms 344 KB Output is correct
2 Correct 0 ms 344 KB Output is correct
3 Incorrect 15 ms 344 KB Wrong Answer [3]
4 Halted 0 ms 0 KB -