Submission #713443

#TimeUsernameProblemLanguageResultExecution timeMemory
713443Spade1Game (IOI14_game)C++14
42 / 100
1073 ms3524 KiB
#include <bits/stdc++.h>
#include "game.h"
#define pb push_back
//#include "grader.cpp"
using namespace std;

const int maxN = 2000;
bool mark[maxN][maxN], vis[maxN];
vector<int> adj[maxN];

int n;

void initialize(int n) {
    ::n = n;
}

int cnt_cmp(int i, int prt=0) {
    if (vis[i]) return 0;
    vis[i] = 1;
    int cnt = 1;
    for (auto j : adj[i]) {
        if (j==prt) continue;
        cnt += cnt_cmp(j, i);
    }
    return cnt;
}

int hasEdge(int u, int v) {
    mark[u][v] = 1;
    mark[v][u] = 1;
    for (int i = 0; i < n; ++i) adj[i].clear(), vis[i] = 0;
    for (int i = 0; i < n; ++i) {
        for (int j = i+1; j < n; ++j) {
            if (!mark[i][j]) {
                adj[i].pb(j);
                adj[j].pb(i);
            }
        }
    }

    if (cnt_cmp(0) < n) {
        mark[u][v] = 0;
        mark[v][u] = 0;
        return 1;
    }
    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...