답안 #951670

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
951670 2024-03-22T09:21:41 Z Pring Super Dango Maker (JOI22_dango3) C++17
0 / 100
209 ms 616 KB
#include <bits/stdc++.h>
using namespace std;
#include "dango3.h"

#define fs first
#define sc second
#define mp make_pair
#define FOR(i, j, k) for (int i = j, Z = k; i < Z; i++)
typedef pair<int, int> pii;

namespace {
    const int MXN = 405;
    int n, m;
    vector<int> cnt[MXN];
    vector<int> v;
    int found = 1;
    vector<int> two;

    int BSH(int id) {
        // cout << "BSH " << id << endl;
        int l = 0, r = found;
        while (l + 1 < r) {
            int mid = (l + r) >> 1;
            FOR(i, mid, r) v.push_back(cnt[i].front());
            int x = Query(v);
            FOR(i, mid, r) v.pop_back();
            if (x == m - 2) r = mid;
            else l = mid;
        }
        // cout << l << endl;
        return l;
    }

    void PUT(int id) {
        int f = 0;
        v.pop_back();
        for (auto &i : two) v.push_back(i);
        if (found == n) {
            cnt[BSH(id)].push_back(id);
            two.push_back(id);
            return;
        }
        int x = Query(v);
        if (x == m - 1) {
            cnt[found].push_back(id);
            found++;
        } else {
            cnt[BSH(id)].push_back(id);
            two.push_back(id);
            f = 1;
        }
        FOR(i, 0, two.size() - f) v.pop_back();
    }

    void miku() {
        FOR(i, 1, n * m) v.push_back(i);
        cnt[0].push_back(n * m);
        for (int i = n * m - 1; i > 0; i--) PUT(i);
        // FOR(i, 0, n) {
            // for (auto &j : cnt[i]) cout << j << ' ';
            // cout << endl;
        // }
        FOR(i, 0, m) {
            vector<int> ans(n);
            FOR(j, 0, n) ans[j] = cnt[j][i];
            Answer(ans);
        }
    }
}

void Solve(int N, int M) {
    ::n = N;
    ::m = M;
    miku();
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 0 ms 348 KB Wrong Answer [2]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 3 ms 344 KB Wrong Answer [2]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 57 ms 348 KB Wrong Answer [2]
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 209 ms 616 KB Wrong Answer [2]
2 Halted 0 ms 0 KB -