# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
311261 | 2020-10-09T19:41:35 Z | Vladth11 | Political Development (BOI17_politicaldevelopment) | C++14 | 5 ms | 5376 KB |
#include <bits/stdc++.h> #define debug(x) cerr << #x << " " << x << "\n" #define debug_with_space(x) cerr << #x << " " << x << " " using namespace std; typedef long long ll; typedef pair <ll, ll> pii; typedef pair <ll, pii> muchie; const ll NMAX = 100005; const ll INF = (1LL << 60); const ll MOD = 1000000007; const ll BLOCK = 101; set <int> v[NMAX],st; int maxim = 0,k; int deg[NMAX]; set <pii> pq; void afiseaza(int x){ for(auto i : v[x]) debug_with_space(i); cerr << "\n"; } void clique(int i) { int nrbits = v[i].size(); // debug(i); for(int mask = 1; mask < (1 << nrbits); mask++) { int cnt = 1;int bb = __builtin_popcount(mask); if(bb + 1 > k || bb + 1 < maxim) continue; int j = 0,cc = 0; st.clear(); for(auto y : v[i]){ if(mask & (1 << j)) st.insert(y); j++; } j = 0; for(auto y : v[i]) { if(mask & (1 << j)) { // debug(y); int cc = 0; for(auto x : v[i]) { // debug(x); if((mask & (1 << cc)) && v[y].find(x) == v[y].end()){ cnt = 0; break; } cc++; } } if(cnt == 0) break; j++; } // debug_with_space(mask); //debug(cnt); if(cnt == 1) maxim = max(maxim, bb + 1); } //debug(maxim); for(auto x : v[i]){ //if(pq.size()) if(x == i) continue; pq.erase({v[x].size(),x}); v[x].erase(i); pq.insert({v[x].size(),x}); } //debug(maxim); } struct cmp{ bool operator()(int x, int y){ return v[x].size() < v[y].size(); } }; int main() { // ifstream cin("catsfood.in"); // ofstream cout("catsfood.out"); ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, i, d; cin >> n >> k; for(i = 1; i <= n; i++) { int d; cin >> d; // v[i].insert(i); while(d--) { int x; cin >> x; v[i].insert(x + 1); //v[x + 1].insert(i); } } for(i = 1; i <= n; i++) { pq.insert({v[i].size(),i}); } while(!pq.empty()){ int top = (*pq.begin()).second; pq.erase(pq.begin()); clique(top); } cout << maxim; return 0; }
Compilation message
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 4992 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 4992 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 5 ms | 5376 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 4992 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |
# | 결과 | 실행 시간 | 메모리 | Grader output |
---|---|---|---|---|
1 | Incorrect | 3 ms | 4992 KB | Output isn't correct |
2 | Halted | 0 ms | 0 KB | - |