답안 #1033200

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1033200 2024-07-24T14:07:21 Z adaawf Super Dango Maker (JOI22_dango3) C++17
컴파일 오류
0 ms 0 KB
#include <iostream>
#include <vector>
#include "dango3.h"
using namespace std;
vector<int> trya(vector<int> v, int x) {
    vector<int> vv;
    for (int w : v) {
        if (w != x) {
            vv.push_back(w);
        }
    }
    return vv;
}
/*void Print(vector<int> v) {
    for (int w : v) cout << w << " ";
    cout << '\n';
}
int Query(vector<int> v) {
    Print(v);
    int k;
    cin >> k;
    return k;
}
void Answer(vector<int> v) {
    Print(v);
}
void Solve(int n, int m);
int main() {
    int n = 4, m = 4;
    Solve(n, m);
}*/
int k = 8;
vector<int> remo(vector<int> vv, int h, int k) {
    vector<int> va = vv;
    for (int i = 0; i < k; i++) va = trya(va, va[h]);
    return va;
}
void check(vector<int> &vv, int &h, int x = k) {
    if (Query(remo(vv, h, x)) != 0) {
        vv = remo(vv, h, x);
        return;
    }
    int l = 1, r = x, res = 0;
    while (l <= r) {
        int mid = (l + r) / 2;
        if (Query(remo(vv, h, mid)) != 0) {
            res = mid;
            l = mid + 1;
        }
        else r = mid - 1;
    }
    if (res == 0) h++;
    vv = remo(vv, h, res);
}
void Solve(int n, int m) {
    vector<int> v;
    vector<vector<int>> res;
    for (int i = 1; i <= n * m; i++) {
        v.push_back(i);
    }
    unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();
    shuffle(v.begin(), v.end(), default_random_engine(seed));
    for (int i = 1; i <= m; i++) {
        vector<int> vv = v;
        int h = 0;
        while (vv.size() > n) {
            if (h < vv.size() - k + 1) {
                check(vv, h);
            }
            else check(vv, h, vv.size() - h);
        }
        res.push_back(vv);
        for (int w : vv) v = trya(v, w);
    }
    for (auto w : res) Answer(w);
}

Compilation message

dango3.cpp: In function 'void Solve(int, int)':
dango3.cpp:61:26: error: 'std::chrono' has not been declared
   61 |     unsigned seed = std::chrono::system_clock::now().time_since_epoch().count();
      |                          ^~~~~~
dango3.cpp:62:33: error: 'default_random_engine' was not declared in this scope
   62 |     shuffle(v.begin(), v.end(), default_random_engine(seed));
      |                                 ^~~~~~~~~~~~~~~~~~~~~
dango3.cpp:62:5: error: 'shuffle' was not declared in this scope
   62 |     shuffle(v.begin(), v.end(), default_random_engine(seed));
      |     ^~~~~~~
dango3.cpp:66:26: warning: comparison of integer expressions of different signedness: 'std::vector<int>::size_type' {aka 'long unsigned int'} and 'int' [-Wsign-compare]
   66 |         while (vv.size() > n) {
      |                ~~~~~~~~~~^~~
dango3.cpp:67:19: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   67 |             if (h < vv.size() - k + 1) {
      |                 ~~^~~~~~~~~~~~~~~~~~~