Submission #1351091

#TimeUsernameProblemLanguageResultExecution timeMemory
1351091ElayV13Game (IOI14_game)C++20
42 / 100
1095 ms3320 KiB
#include "game.h"
#include "bits/stdc++.h"
using namespace std;

int N;
bool adj[1501][1501];
vector<int>G[1501];
bool used[1501];

void init(){
      for(int i=0;i<N;i++) G[i].clear(),used[i]=0;
}

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

void dfs(int v){
      used[v]=1;
      for(int u:G[v]) if(!used[u]) dfs(u);
}

bool IsTree(){
      dfs(0);
      for(int i=0;i<N;i++) if(!used[i]) return 0;
      return 1;
}

int hasEdge(int u,int v)
{
      adj[u][v]=0;
      adj[v][u]=0;
      init();
      for(int i=0;i<N;i++){
            for(int j=i+1;j<N;j++){
                  if(adj[i][j]){
                        G[i].push_back(j);
                        G[j].push_back(i);
                  }
            }
      }
      if(IsTree()) return 0;
      adj[u][v]=1;
      adj[v][u]=1;
      return 1;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...