Submission #309053

#TimeUsernameProblemLanguageResultExecution timeMemory
309053mohamedsobhi777Game (IOI14_game)C++14
42 / 100
1086 ms12768 KiB
#include<bits/stdc++.h>
#include "game.h"

const int MX = 1600 + 7 ; 
using namespace std ; 
int gn ; 
bool del[MX][MX] ;
int viz[MX] ;
int Cnt = 0 ; 
set<int> adz[MX] ; 

void initialize(int x) {
        gn = x; 
        for(int i = 0 ;i < x ; ++ i){
                for(int j = 0 ;j < x ; ++ j){
                        if(i != j){
                                adz[i].insert(j) ; 
                        }
                }
        }
}

void dfz(int x , int p){

        if(viz[x]++)
                return ; 

        for(auto u : adz[x]){
                if(u == p)
                        continue ; 
                dfz(u , x) ;
        }
}

int count(){
        Cnt = 0 ; 
        memset(viz , 0 , sizeof viz) ; 
        for(int i = 0 ; i < gn; ++ i){
                if(!viz[i]){
                        ++ Cnt ; 
                }
                dfz(i , i) ; 
        }
        return Cnt ; 
}

int hasEdge(int u, int v) {
        adz[u].erase(v) ; 
        adz[v].erase(u) ; 
        if(count() == 1){
                return 0 ; 
        }
        adz[u].insert(v) ; 
        adz[v].insert(u) ; 
        return 1 ; 
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...