Submission #919414

#TimeUsernameProblemLanguageResultExecution timeMemory
919414nasir_bashirovICC (CEOI16_icc)C++11
7 / 100
229 ms852 KiB
#pragma GCC optimize("O3,unroll-loops") #pragma GCC target("avx2,bmi,bmi2,lzcnt,popcnt") #include <bits/stdc++.h> #include "icc.h" using namespace std; #define db long double #define ll long long #define pii pair<int, int> #define pll pair<ll, ll> #define vi vector<int> #define vl vector<ll> #define vii vector<pii> #define vll vector<pll> // #define endl '\n' #define all(x) x.begin(), x.end() #define fastio\ ios_base::sync_with_stdio(0);\ cin.tie(0);\ cout.tie(0)\ // #define int long long mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); int n; struct DSU{ vi par; int components; DSU(int sz){ components = sz; par.resize(sz + 5, -1); } int Find(int u){ if(par[u] < 0) return u; else return par[u] = Find(par[u]); } bool Union(int u, int v){ u = Find(u), v = Find(v); if(u != v){ if(par[u] < par[v]){ swap(u, v); } par[u] += par[v]; par[v] = u; components--; return true; } else{ return false; } } }; void run(int N){ n = N; DSU g(n); for(int t = 1; t < n; t++){ bool f = false; for(int i = 1; i <= n and !f; i++){ for(int j = 1; j <= n; j++){ if(i == j or g.Find(i) == g.Find(j)) continue; int a[] = {i}, b[] = {j}; if(query(1, 1, a, b)){ g.Union(i, j); setRoad(i, j); f = true; } } } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...