#include <bits/stdc++.h>
using namespace std;
#define int long long
const int modulo = 998244353;
const int div2 = 499122177;
int32_t main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n,m;
cin >> n >> m;
vector<pair<int,int>> edges;
for(int i=1;i<=m;i++){
int a,b;
cin >> a >> b;
edges.emplace_back(a,b);
}
vector<int> perm(n+1);
iota(perm.begin(),perm.end(),0);
vector<int> answers;
do {
int mask = 0;
for(int i=0;i<m;i++){
if(perm[edges[i].first]<perm[edges[i].second])mask|=(1ll<<i);
}
answers.emplace_back(mask);
} while(next_permutation(perm.begin()+1,perm.end()));
int ans = 0;
sort(answers.begin(),answers.end());
answers.erase(unique(answers.begin(),answers.end()),answers.end());
for(int&i:answers)ans+=__builtin_popcountll(i);
cout << ans << '\n';
}
# | 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... |