Submission #580620

#TimeUsernameProblemLanguageResultExecution timeMemory
580620MrDebooGame (IOI14_game)C++17
0 / 100
1 ms2516 KiB
#include "game.h" #include"bits/stdc++.h" using namespace std; #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> using namespace __gnu_pbds; template<class x> using ordered_set = tree<x, null_type,less<x>, rb_tree_tag,tree_order_statistics_node_update>; int n; bool bl[1500][1500]; bool use[1500][1500]; vector<pair<int,int>>vctpr; bool SUIII(){ vector<pair<int,int>>vctpor; int cnt=0; vector<bool>vis(n); deque<int>dq={rand()%n}; vis[dq.back()]=1; while(dq.size()){ int a=dq.front(); dq.pop_front(); for(int i=0;i<n;i++){ if(i==a||!bl[a][i])continue; if(!vis[i]){ vis[i]=1; vctpor.push_back({a,i}); vctpor.push_back({i,a}); cnt++; dq.push_back(i); } } } if(cnt!=n)return 0; for(auto &i:vctpr)use[i.first][i.second]=0; vctpr=vctpor; for(auto &i:vctpr)use[i.first][i.second]=1; return 1; } void initialize(int N){ n=N; memset(bl,1,sizeof bl); srand(time(NULL)); SUIII(); } int hasEdge(int u, int v){ bl[u][v]=0; bl[v][u]=0; if(SUIII())return 0; bl[u][v]=1; bl[v][u]=1; return 1; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...