제출 #814235

#제출 시각아이디문제언어결과실행 시간메모리
814235PixelCat열쇠 (IOI21_keys)C++17
37 / 100
105 ms16848 KiB
#ifdef NYAOWO #include "grader.cpp" #endif #include <bits/stdc++.h> #define For(i, a, b) for(int i = a; i <= b; i++) #define Forr(i, a, b) for(int i = a; i >= b; i--) #define F first #define S second #define sz(x) ((int)x.size()) #define all(x) x.begin(), x.end() #define eb emplace_back // #define int LL using namespace std; using i32 = int32_t; using LL = long long; using pii = pair<int, int>; const int MAXN = 2000; const int MAXK = 2000; vector<pii> adj[MAXN + 10]; int vis[MAXN + 10]; int ok[MAXK + 10]; vector<int> ed[MAXK + 10]; int solve(int n, int s, vector<i32> &R) { For(i, 0, n - 1) { vis[i] = ok[i] = 0; ed[i].clear(); } queue<int> quer, quek; quer.emplace(s); vis[s] = 1; while(sz(quer) || sz(quek)) { if(sz(quer)) { int cur = quer.front(); quer.pop(); if(!ok[R[cur]]) { ok[R[cur]] = 1; quek.emplace(R[cur]); } for(auto &e:adj[cur]) { if(ok[e.S] && !vis[e.F]) { vis[e.F] = 1; quer.emplace(e.F); } else if(!ok[e.S]) { ed[e.S].eb(e.F); } } } if(sz(quek)) { int k = quek.front(); quek.pop(); for(auto &i:ed[k]) if(!vis[i]) { vis[i] = 1; quer.emplace(i); } ed[k].clear(); } } int cnt = 0; For(i, 0, n - 1) if(vis[i]) cnt++; return cnt; } vector<i32> find_reachable(vector<i32> R, vector<i32> U, vector<i32> V, vector<i32> C) { int n = sz(R); int m = sz(C); For(i, 0, m - 1) { adj[U[i]].eb(V[i], C[i]); adj[V[i]].eb(U[i], C[i]); } vector<int> cnt; int mn = n + 48763; For(i, 0, n - 1) { cnt.eb(solve(n, i, R)); mn = min(mn, cnt.back()); } vector<i32> ans; For(i, 0, n - 1) { ans.eb(cnt[i] == mn); } return ans; } /* 4 5 0 1 1 2 0 1 0 0 2 0 1 2 1 1 3 0 3 1 2 0 1 1 0 7 10 0 1 1 2 2 1 2 0 1 0 0 2 0 1 2 1 1 3 0 2 3 0 3 4 1 3 5 2 4 5 0 4 6 2 5 6 1 0 1 1 0 1 0 1 3 1 0 0 0 0 1 0 0 0 1 */
#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...