Submission #1343084

#TimeUsernameProblemLanguageResultExecution timeMemory
1343084sdanGame (IOI14_game)C++20
42 / 100
1095 ms9320 KiB
#include "game.h"
#include<bits/stdc++.h>
using namespace std;
#define f first
#define s second
#define pb push_back
const int N = 1501;

vector<vector<int>> a(N, vector<int>(N, 1));
int n, vis[N];

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

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

int hasEdge(int u, int v) {
    if(u > v) swap(u, v);

    for(int i = 0; i < n; ++i) vis[i] = 0;
    
    a[u][v] = 0, a[v][u] = 0;
    dfs(1);

    bool ch = 0;
    for(int i = 0; i < n && !ch; ++i)
        if(!vis[i]) ch = 1, a[u][v] = 1, a[v][u] = 1;

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