Submission #1274857

#TimeUsernameProblemLanguageResultExecution timeMemory
1274857zagaroGame (IOI14_game)C++20
0 / 100
1 ms344 KiB
#include<bits/stdc++.h> //#include "game.h" #include<ext/pb_ds/assoc_container.hpp> /**zagaro & lauren <3**/ #define mod 1000000007 //1e9 + 7 #define pi acos(-1) #define wl while #define str string #define ENDL "\n" #define sal ' ' #define tp_set ll #define prc(n) cout.precision(n);cout<<fixed; #define ord_set tree<tp_set, null_type, less<tp_set>, rb_tree_tag, tree_order_statistics_node_update> typedef long long ll; typedef bool bl; typedef char car; using namespace std; using namespace __gnu_pbds; ll n; vector<ll> parent; vector<ll> tam; vector<bl> vis; vector<vector<ll> > vec; ll fnd(ll a){ if(parent[a] == a)return a; else return parent[a] = fnd(parent[a]); } void uni(ll a, ll b){ a = fnd(a);b = fnd(b); if(tam[a] >= tam[b]){ tam[a]+=tam[b]; vis[b]=false; for(int i=0;i<n;i++){ if(vis[i]){ vec[a][i] += vec[b][i]; vec[i][a] += vec[b][i]; } } } else { tam[b]+=tam[a]; vis[a]=false; for(int i=0;i<n;i++){ if(vis[i]){ vec[b][i] += vec[a][i]; vec[i][b] += vec[a][i]; } } } return ; } void initialize(int a) { n = a; vec.assign(n, vector<ll> (n, 1)); vis.assign(n, true); parent.assign(n, 0); tam.assign(n, 1); for(int i=0;i<n;i++)parent[i]=i; return ; } int hasEdge(int u, int v) { u = fnd(u);v = fnd(v); vec[u][v]--; vec[v][u]--; if(vec[u][v] == 0){ uni(u, v); return 1; } else return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...