You are on page 1of 2

#include <iostream>

#include <string>
#include <list>
using namespace std;
void print(int l1[],int n){
for(int i=0;i<n;i++){
cout<<l1[i]<<" ";
}cout<<endl;
}
int main() {
// your code goes here
int n,m,k;
cin>>n>>m>>k;
int grid[n][n];
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
grid[i][j]=0;
}}

int l1[n];
for(int j=0;j<n;j++){l1[j]=0;}
for(int i=0;i<m;i++){
int x,y;
cin>>x>>y;
grid[x-1][y-1]=1;
grid[y-1][x-1]=1;
l1[x-1]++;
l1[y-1]++;
}
//print(l1,n);
//grid
/*
for(int y=0;y<n;y++){
for(int z=0;z<n;z++){
cout<<grid[y][z]<<" ";
}cout<<endl;
}*/
//grid
//cout<<""<<endl;
int ans=0;
while(true){
for(int i=0;i<n;i++){
if(l1[i]<k){
l1[i]=0;
for(int h=0;h<n;h++){
if(grid[i][h]==1){
grid[i][h]=0;
grid[h][i]=0;
l1[h]-=1;
}
}
}
}
//grid
/*
for(int y=0;y<n;y++){
for(int z=0;z<n;z++){
cout<<grid[y][z]<<" ";
}cout<<endl;
}*/
//grid
//cout<<endl;
//print(l1,n);
//cout<<endl;
int c=0;ans=0;
for(int i=0;i<n;i++){
if(l1[i]<k && l1[i]>0){
c=1;
break;
}
else if(l1[i]>=k){ans+=1;}
}
//cout<<" "<<c<<endl;
if (c==0){break;}
}/*
for(int y=0;y<n;y++){
for(int z=0;z<n;z++){
cout<<grid[y][z]<<" ";
}cout<<endl;
}*/
//cout<<""<<endl;
//cout<<""<<endl;
if(ans==0){
cout<<"NO";
}
else{
cout<<"YES"<<endl;
cout<<ans<<endl;
}
return 0;
}

You might also like