Submission #960190

#TimeUsernameProblemLanguageResultExecution timeMemory
960190vjudge1Game (IOI14_game)C++17
15 / 100
2 ms2500 KiB
#include "game.h"
#include <bits/stdc++.h>
using namespace std;
 
const int N = 1500;
 
int n;
bitset<N> adj[N], edge[N];
 
void dfs(int x) {
    if (adj[x].count() == 1) {
        int y = 0;
        while (!adj[x][y]) y++;

        adj[x][y] = adj[y][x] = 0;
        edge[x][y] = edge[y][x] = 1;

        dfs(y);
    }
}

void initialize(int nn) {
    n = nn;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < n; j++) {
            if (i == j) continue;
            adj[i][j] = 1;
        }
    }
}
 
int hasEdge(int u, int v) {
    if (edge[u][v]) return 1;

    adj[u][v] = adj[v][u] = 0;

    dfs(u);
    dfs(v);

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