Submission #1246805

#TimeUsernameProblemLanguageResultExecution timeMemory
1246805KindaGoodGamesAmusement Park (CEOI19_amusementpark)C++20
7 / 100
3095 ms328 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define pii pair<int,int> int n,m; int mod = 998244353; bool validate(vector<pii> edges){ vector<vector<int>> adj(n); for(int i = 0; i < m; i++){ int a,b; tie(a,b) = edges[i]; adj[a].push_back(b); } for(int i = 0; i < n; i++){ vector<bool> vis(n); stack<int> S; S.push(i); while(S.size()){ int v = S.top(); S.pop(); if(vis[v] && v == i) { return false; } vis[v] = true; for(auto u : adj[v]){ S.push(u); } } } return true; } int32_t main(){ cin >> n >> m; vector<pii> edges(m); for(int i = 0; i < m; i++){ int a,b; cin >> a >> b; a--;b--; edges[i] = {a,b}; } int sum = 0; int p2 = 1 << m; for(int mask = 0; mask < p2; mask++){ int bits = 0; for(int i = 0; i < m; i++){ if(mask & (1 << i)){ swap(edges[i].first,edges[i].second); bits++; } } if(validate(edges)){ sum += bits; // sum %= mod; } for(int i = 0; i < m; i++){ if(mask & (1 << i)){ swap(edges[i].first,edges[i].second); bits++; } } } cout << sum << endl; }
#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...