Submission #31718

#TimeUsernameProblemLanguageResultExecution timeMemory
31718top34051Game (IOI14_game)C++14
42 / 100
1000 ms19656 KiB
#include "game.h"
#include <bits/stdc++.h>
using namespace std;
#define maxn 1505

int n;
int a[maxn];
int edge[maxn][maxn];

void dfs(int x) {
    a[x] = 1;
    for(int i=0;i<n;i++) if(!a[i] && edge[x][i]) dfs(i);
}

bool check(int x,int y) {
    memset(a,0,sizeof(a));
    dfs(x);
    if(a[y]) return 1;
    return 0;
}

void initialize(int N) {
    n = N;
    memset(edge,1,sizeof(edge));
}

int hasEdge(int u, int v) {
    edge[u][v] = edge[v][u] = 0;
    if(!check(u,v)) edge[u][v] = edge[v][u] = 1;
    return edge[u][v];
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...