제출 #1355238

#제출 시각아이디문제언어결과실행 시간메모리
1355238kasamchiVoltage 2 (JOI26_voltage)C++20
37 / 100
24 ms680 KiB
#include "voltage.h"
#include <bits/stdc++.h>
using namespace std;

bool solve(int N, int M) {
    int vcnt = 0;
    vector<bool> vis(N);
    vector<vector<int>> dis;
    while (vcnt < N) {
        vector<int> cur;
        for (int i = 0; i < N; i++) {
            if (!vis[i]) {
                vector<int> x(N), y(N);
                y[i] = 1;
                for (auto &v : dis) {
                    for (int j : v) {
                        y[j] = 1;
                    }
                }
                if (query(x, y) == 0) {
                    cur.push_back(i);
                    vis[i] = true, vcnt++;
                }
            }
        }
        if (cur.empty()) {
            return false;
        }
        dis.push_back(cur);
    }

    for (auto &v : dis) {
        for (int j : v) {
            cerr << j << ' ';
        }
        cerr << '\n';
    }

    for (int i = 0; i + 1 < (int)dis.size(); i++) {
        vector<int> x(N), y(N);
        for (int j = 0; j < (int)dis.size(); j++) {
            for (int k : dis[j]) {
                x[k] = y[k] = (j <= i);
            }
        }
        for (int u : dis[i]) {
            for (int v : dis[i + 1]) {
                y[u] = 0, y[v] = 1;
                if (query(x, y) == 1) {
                    fprintf(stderr, "answer(%d,%d)\n", v, u);
                    answer(v, u);
                }
                y[u] = 1, y[v] = 0;
            }
        }
    }

    return true;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...