#include<bits/stdc++.h>
using namespace std;
#define int long long
#define pii pair<int,int>
int n,m;
int mod = 998244353;
int32_t main(){
cin >> n >> m;
vector<pii> edges(m);
for(int i = 0; i < m; i++){
int a,b;
cin >> a >> b;
a--;b--;
edges[i] = {a,b};
}
int sum = 0;
vector<int> perm(n);
iota(perm.begin(),perm.end(), 0);
map<int,int> val;
do{
vector<int> pos(n);
int cur = 0;
int v = 0;
for(int i = 0; i < n; i++){
pos[perm[i]] = i;
}
for(int i = 0; i < m; i++){
int a,b;
tie(a,b) = edges[i];
if(pos[a] > pos[b]){
cur += (1LL << i);
v++;
}
}
val[cur] = v;
}while(next_permutation(perm.begin(),perm.end()));
for(auto p : val){
sum += p.second;
}
cout << sum << endl;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |