Submission #245101

#TimeUsernameProblemLanguageResultExecution timeMemory
245101Tc14Political Development (BOI17_politicaldevelopment)C++17
23 / 100
3072 ms5496 KiB
//#pragma GCC optimize("O3") #include <bits/stdc++.h> using namespace std; #define ve vector typedef long long ll; const int MAXN = 50000; int r; ve<int> G[MAXN]; ve<int> S; bool disagree(int a, int b) { for (int i : G[a]) { if (i == b) return true; } return false; } void f(int a, int i, int d, int s) { bool valid; if (i == d) r = max(r, s); else { f(a, i + 1, d, s); valid = true; for (int j = 0; j < s; j++) { if (!disagree(S[j], G[a][i]) || !disagree(G[a][i], S[j])) { valid = false; break; } } if (valid) { S.push_back(G[a][i]); f(a, i + 1, d, s + 1); S.pop_back(); } } } int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); int n, k, d, a; cin >> n >> k; for (int i = 0; i < n; i++) { cin >> d; for (int j = 0; j < d; j++) { cin >> a; if (a != i) G[i].push_back(a); } } r = 1; for (int i = 0; i < n; i++) { S = {i}; f(i, 0, G[i].size(), 1); } cout << r << endl; return 0; }
#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...