Submission #1111011

#TimeUsernameProblemLanguageResultExecution timeMemory
1111011crafticatAmusement Park (CEOI19_amusementpark)C++17
0 / 100
1 ms528 KiB
#include <bits/stdc++.h> using namespace std; template<typename T> using V = vector<T>; using vi = V<int>; using vb = V<bool>; using pi = pair<int,int>; #define F0R(i,n) for (int i = 0; i < n;i++) #define FOR(i, j, n) for(int i = j; i < n;i++) #define ckmin(x,y) x = min(x,y) #define f first #define s second using ll = long long; constexpr int MOD = 998244353; V<int> vis; V<V<int>> g; bool dfs(int x) { if (vis[x] == 1) return false; vis[x] = 1; for (auto y : g[x]) { if (vis[y] == 2) continue; if (!dfs(y)) return false; } vis[x] = 2; return true; } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n, m; cin >> n >> m; V<pi> edges(m); set<pi> exists; F0R(i, m) { int x, y; cin >> x >> y; x--; y--; edges[i] = {x,y}; exists.insert({x,y}); exists.insert({y,x}); } ll ans = 0; vi perm(n); // Height of I F0R(i, n) perm[i] = i; do { int cost = 0; for (auto [a,b] : edges) { if (perm[a] < perm[b]) cost++; } bool pos = true; F0R(i, n - 1) { int a = perm[i]; int b = perm[i + 1]; if (a > b && !exists.count({a,b})) pos = false; } ans += cost; ans %= MOD; } while (std::next_permutation(perm.begin(), perm.end())); cout << ans; return 0; }

Compilation message (stderr)

amusementpark.cpp: In function 'int main()':
amusementpark.cpp:60:14: warning: variable 'pos' set but not used [-Wunused-but-set-variable]
   60 |         bool pos = true;
      |              ^~~
#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...