#include<bits/stdc++.h>
#define ll long long
using namespace std;
vector<vector<ll>> e;
vector<bool> vis;
ll ans=0,n;
void dfs(ll u,ll dig,vector<ll> vis){
ans++;
vis[u]=true;
for(auto v:e[u]){
if(vis[v]==false and dig+1<=n) dfs(v,dig+1,vis);
}
vis[u]=false;
}
int main(){
ll m,i,j,a,b,k;
cin>>n>>m;
e.resize(n+1);
set<pair<ll,ll>> st;
for(i=0 ; i<m ; i++){
cin>>a>>b;
st.insert({a,b});
st.insert({b,a});
}
for(i=1 ; i<n ; i++){
for(j=i+1 ; j<=n ; j++){
if(st.count({i,j})==0 and st.count({j,i})==0) e[i].push_back(j);
}
}
for(i=1 ; i<=n ; i++){
vector<ll> vis(n+1,false);
dfs(i,1,vis);
}
cout<<ans+1;
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |