Submission #946917

#TimeUsernameProblemLanguageResultExecution timeMemory
946917penguin133Meetings (JOI19_meetings)C++17
17 / 100
1580 ms16464 KiB
#include <bits/stdc++.h> using namespace std; //#define int long long #define pi pair<int, int> #define pii pair<int, pi> #define fi first #define se second #ifdef _WIN32 #define getchar_unlocked _getchar_nolock #endif mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count()); #include "meetings.h" int par[2005]; int getr(int x){return par[x] == x ? x : par[x] = getr(par[x]);} void merge(int a, int b){ a = getr(a); b =getr(b); par[b] = a; } void Solve(int N) { int adj[N][N]; for(int i = 0; i < N; i++)for(int j = 0; j < N; j++)adj[i][j] = 0; for(int i = 0; i < N; i++)par[i] = i; for(int i = 0; i < N; i++){ for(int j = i + 1; j < N; j++){ if(getr(i) == getr(j) || adj[i][j])continue; bool f = 1; for(int k = 0; k < N; k++){ if(k == i || k == j)continue; int res = Query(i, j, k); if(res == k){ f = 0; break; } if(res != j)adj[j][k] = adj[k][j] = 1; if(res != i)adj[i][k] = adj[k][i] = 1; if(res != j && res != i){ f = 0; break; } } if(f)Bridge(i, j), merge(i, j); } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...