제출 #1306270

#제출 시각아이디문제언어결과실행 시간메모리
1306270zxzuamPolitical Development (BOI17_politicaldevelopment)C++20
0 / 100
3 ms3132 KiB
#include <bits/stdc++.h> #define int int64_t using namespace std; constexpr int MAXN = 50009, inf = 1e18; set <int> g[MAXN]; vector <int> cand[MAXN]; void solve() { int n, k; cin >> n >> k; set <pair <int, int>> s; for(int i = 1; i <= n; i++) { int d; cin >> d; for(int j = 0; j < d; j++) { int x; cin >> x; x++; g[i].insert(x); } s.insert({ d, i }); } vector <bool> used(n + 1, 1); int ans = 1; for(auto [_, v] : s) { used[v] = 0; cand[ v ].emplace_back(v); for(auto to : g[v]) { if( used[to] ) { cand[ v ].emplace_back(to); } } } vector <int> vv; for(int v = 1; v <= n; v++) { swap(vv, cand[v]); int sz = (int)vv.size(); int mx = 1; vector <int> daun; for(int bt = 0; bt < (1 << sz); bt++) { if(!used[bt] ) continue; daun.clear(); int cnt = 0; for(int i = 0; i < sz; i++) { if( ((bt >> i) & 1) ) { cnt++; daun.emplace_back(vv[i]); } } bool ok = 1; for(int i = 0; i < cnt; i++) { int u = daun[i]; for(int j = i + 1; j < cnt; j++) { int v = daun[j]; if(!g[u].count(v) || !g[v].count(u)) { ok = 0; break; } } if(!ok) break; } if(ok){ mx = max(mx, cnt); } } ans = max(ans, mx); } cout << ans; } signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); //freopen("7-router.in", "r", stdin); //freopen("7-router.out.txt", "w", stdout); int tt = 1; //cin >> tt; while (tt--){ solve(); } }
#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...