Submission #309050

#TimeUsernameProblemLanguageResultExecution timeMemory
309050mohamedsobhi777Game (IOI14_game)C++14
42 / 100
1081 ms1616 KiB
#include<bits/stdc++.h>
#include "game.h"

const int MX = 2e3 + 7 ; 
int gn ; 
bool del[MX][MX] ;
int viz[MX] ;
int Cnt = 0 ; 


void initialize(int x) {
        gn = x; 
}

void dfz(int x , int p){

        if(viz[x]++)
                return ; 

        for(int i = 0 ;i < gn ; ++ i){
                if(i == p || del[x][i] || del[i][x])
                        continue ; 
                dfz(i , 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) {
        del[u][v] = del[v][u] = 1; 
        if(count() == 1){
                return 0 ; 
        }
        del[u][v] = del[v][u] = 0 ; 
        return 1 ; 
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...