Submission #1201344

#TimeUsernameProblemLanguageResultExecution timeMemory
1201344SofiatpcGame (IOI14_game)C++20
15 / 100
3 ms840 KiB
#include "game.h"
#include <bits/stdc++.h>

using namespace std;

#define sz(v) (int)v.size()
set<int> adj[2][1505];

void initialize(int n) {
    for(int i = 0; i < n; i++)
        for(int j = i+1; j < n; j++){
            adj[0][i].insert(j);
            adj[0][j].insert(i);
        }
}

void dfs(int s){
    if(sz(adj[0][s]) != 1)return;

    int viz = *adj[0][s].begin();
    adj[1][s].insert(viz);
    adj[1][viz].insert(s);

    adj[0][s].erase(viz);
    adj[0][viz].erase(s);

    dfs(viz);
}


int hasEdge(int u, int v) {
    if(adj[1][u].find(v) != adj[1][u].end())return 1;
    else{
        adj[0][u].erase(v);
        adj[0][v].erase(u);
        dfs(u);
        dfs(v);
        return 0;
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...