Submission #1273570

#TimeUsernameProblemLanguageResultExecution timeMemory
1273570hgmhcGame (IOI14_game)C++20
42 / 100
1093 ms12880 KiB
#include "game.h" #include <bits/stdc++.h> using namespace std; set<int> adj[1503]; int n; 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].insert(j); } } } } bool vis[1503]; int dfs(int s) { if(vis[s]) return 0; vis[s]=true; int r=1; for(auto u:adj[s]) { r+=dfs(u); } return r; } int hasEdge(int u, int v) { adj[u].erase(v); adj[v].erase(u); fill(vis, vis+1501, 0); int toured = dfs(0); cerr << toured << endl; if (toured < n) { // roll back adj[u].insert(v); adj[v].insert(u); return 1; } return 0; } // 남은 그래프가 분리되려고 하면 멈추고 yes.
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...