Submission #1222080

#TimeUsernameProblemLanguageResultExecution timeMemory
1222080totoroRarest Insects (IOI22_insects)C++20
0 / 100
0 ms396 KiB
#include "insects.h"

#include <vector>

int min_cardinality(int N) {
    std::vector<std::vector<int>> same(N, std::vector<int>(N));
    for (int i = 0; i < N; ++i) {
        move_inside(i);
        for (int j = i + 1; j < N; ++j) {
            move_inside(j);
            same[i][j] = same[j][i] = press_button() - 1;
            move_outside(j);
        }
        move_outside(i);
    }
    std::vector<int> color(N);
    int min = 0;
    for (int i = 0; i < N; ++i) {
        if (color[i]) continue;
        std::vector<int> stack = {i};
        int cursz = 0;
        while (!stack.empty()) {
            int now = stack.back();
            stack.pop_back();
            if (color[now]) continue;
            ++cursz;
            color[now] = 1;
            for (int j = 0; j < N; ++j) {
                if (same[i][j]) stack.push_back(j);
            }
        }
        min = std::min(min, cursz);
    }
    return min;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...