Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void solve(){
- int n,m;cin>>n>>m;
- vector<int>ct(n+1);
- map<pair<int,int>,int>mp;
- vector<vector<int>>f(m+1);
- set<pair<int,int>>v;
- for(int i=0;i<m;i++){
- int a,b;cin>>a>>b;
- v.insert({a,b});
- ct[a]++;ct[b]++;mp[{a,b}]++;
- }
- for(int i=1;i<=n;i++){
- f[ct[i]].push_back(i);
- }
- int ans=0;
- for(auto&[a,b]:v){
- if((ct[a]+ct[b]-(mp.count({a,b})?mp[{a,b}]:0))==m){
- ans++;
- //cout<<a<<" "<<b<<endl;
- }
- }
- for(int i=1;i<=n;i++){
- int cta=ct[i];
- int need=m-cta;
- vector<int>temp=f[need];
- if(temp.size()){
- for(auto&j:temp){
- // int a=min(i,j),b=max(i,j);
- if(i<j&&(!mp.count({i,j}))){
- // cout<<i<<" "<<j<<endl;
- ans++;
- }
- }
- }
- }
- cout<<ans;
- }
Advertisement
Add Comment
Please, Sign In to add comment