// source problem :
#include <bits/stdc++.h>
using namespace std;
#define all(x) x.begin(), x.end()
#define int long long
#define MASK(i) (1LL << (i))
void ckmax(int& f, int s)
{
f = (f > s ? f : s);
}
void ckmin(int& f, int s)
{
f = (f < s ? f : s);
}
int n, d[20][20] = {};
int cnt = 0;
void solve(int cur, int mask)
{
if (cur == n)
{
cnt++;
return;
}
solve(cur + 1, mask);
int ok = 1;
for (int i = 0; i < cur; i++)
{
if ((mask >> i) & 1)
{
if (d[i][cur]) ok = 0;
}
}
if (ok) solve(cur + 1, mask | MASK(cur));
}
int32_t main()
{
ios_base::sync_with_stdio(false);
cin.tie(0);
int m;
cin >> n >> m;
for (int i = 0; i < m; i++)
{
int u, v;
cin >> u >> v;
u--, v--;
d[u][v] = d[v][u] = 1;
}
solve(0, 0);
cout << cnt;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |