Submission #531770

#TimeUsernameProblemLanguageResultExecution timeMemory
531770Yazan_AlattarAmusement Park (CEOI19_amusementpark)C++14
19 / 100
3079 ms128712 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; #define F first #define S second #define pb push_back #define endl "\n" #define all(x) x.begin(), x.end() const int M = 2007; const ll inf = 1e18; const ll mod = 998244353; const double pi = acos(-1); const int dx[] = {0, -1, 0, 1}, dy[] = {1, 0, -1, 0}; const int block = 320; map <string, bool> vist; ll n, m, a[M], b[M], p[M], pos[M], ans; int main(){ cin >> n >> m; for(int i = 1; i <= m; ++i) cin >> a[i] >> b[i]; for(int i = 1; i <= n; ++i) p[i] = i; do{ for(int i = 1; i <= n; ++i) pos[p[i]] = i; string s = ""; ll cost = 0; for(int i = 1; i <= m; ++i){ if(pos[a[i]] > pos[b[i]]) s += '1', ++cost; else s += '0'; } if(!vist[s]) ans = (ans + cost) % mod; vist[s] = 1; } while(next_permutation(p + 1, p + n + 1)); cout << ans << 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...