Submission #208144

#TimeUsernameProblemLanguageResultExecution timeMemory
208144E869120Amusement Park (CEOI19_amusementpark)C++14
42 / 100
3100 ms214012 KiB
#include <iostream> #include <algorithm> #include <vector> using namespace std; #pragma warning (disable: 4996) long long mod = 998244353; int N, M, A[1009], B[1009]; int idx[11]; int main() { cin >> N >> M; for (int i = 1; i <= M; i++) cin >> A[i] >> B[i]; for (int i = 1; i <= N; i++) idx[i] = i; vector<long long> vec[56]; do { long long ret = 0, cnt = 0; for (int i = 1; i <= M; i++) { if (idx[A[i]] < idx[B[i]]) { ret += (1LL << (i - 1)); cnt++; } } vec[cnt].push_back(ret); } while (next_permutation(idx + 1, idx + N + 1)); long long ans = 0; for (int i = 0; i <= 55; i++) { sort(vec[i].begin(), vec[i].end()); vec[i].erase(unique(vec[i].begin(), vec[i].end()), vec[i].end()); ans += 1LL * i * vec[i].size(); ans %= mod; } cout << ans << endl; return 0; }

Compilation message (stderr)

amusementpark.cpp:5:0: warning: ignoring #pragma warning  [-Wunknown-pragmas]
 #pragma warning (disable: 4996)
#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...