Submission #983140

#TimeUsernameProblemLanguageResultExecution timeMemory
983140duckindogAmusement Park (CEOI19_amusementpark)C++17
0 / 100
1 ms456 KiB
#include <bits/stdc++.h>

using namespace std;

const int N = 18 + 10,
          M = 998'244'353;
int n, m;
int a[N], b[N];

int32_t main() { 
  cin.tie(0)->sync_with_stdio(0);

  cin >> n >> m;
  for (int i = 1; i <= m; ++i) cin >> a[i] >> b[i];

  long long answer = 0;
  vector<int> vt(n); iota(vt.begin(), vt.end(), 1);

  do { 
    vector<int> p(n);
    for (int i = 0; i < n; ++i) p[vt[i]] = i;
    for (int i = 1; i <= m; ++i) answer += p[a[i]] > p[b[i]];
  } while (next_permutation(vt.begin(), vt.end()));

  cout << answer % M << "\n";
}
#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...