Submission #415121

#TimeUsernameProblemLanguageResultExecution timeMemory
415121ngpin04Amusement Park (CEOI19_amusementpark)C++14
42 / 100
1976 ms170836 KiB
#include <bits/stdc++.h> #define fi first #define se second #define mp make_pair using namespace std; const int N = 1e5 + 5; set <long long> s; pair <int, int> ed[N]; int pos[N]; int n,m; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin >> n >> m; for (int i = 0; i < m; i++) { cin >> ed[i].fi >> ed[i].se; } if (n > 10) return 0; int ans = 0; vector <int> id(n, 0); iota(id.begin(), id.end(), 1); do { for (int i = 0; i < n; i++) pos[id[i]] = i; long long res = 0; int cnt = 0; for (int i = 0; i < m; i++) { int u = ed[i].fi; int v = ed[i].se; if (pos[u] > pos[v]) { cnt++; res |= (1LL << i); } } if (s.find(res) == s.end()) { ans += cnt; s.insert(res); } } while (next_permutation(id.begin(), id.end())); cout << ans; 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...