Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int deg[101];
- int mas[101][101];
- int d[101];
- void dfs(int x){
- d[x]=1;
- int i=1;
- while(i<=100){
- if((mas[i][x]==1) && (d[i]!=1)) dfs(i);
- i++;
- }
- }
- int main(){
- ios::sync_with_stdio(false);
- cin.tie(0);
- int n,m,p,q;
- int a,b;
- cin >> m;
- cin >> n;
- for(int i=1; i<=n; i++){
- cin >> a >> b;
- mas[a][b]=1;
- mas[b][a]=1;
- }
- for(int i=1; i<=m; i++){
- for(int j=1; j<=m; j++){
- mas[i][j]=1-mas[i][j];
- }
- }
- for(int i=1; i<=m; i++){
- for(int j=1; j<=m; j++){
- if(i!=j) deg[i]=(deg[i]+mas[i][j])%2;
- }
- }
- int s=0;
- for(int i=1; i<=m; i++){
- s=s+deg[i];
- }
- s=s/2;
- p=0;
- for(int i=1; i<=m; i++){
- for(int j=1; j<=m; j++){
- if((deg[i]==1) && (deg[j]==1)){
- mas[i][j]=1;
- mas[j][i]=1;
- p=1;
- }
- }
- }
- int c=0;
- for(int j=1; j<=m; j++){
- if(d[j]==0){
- c++;
- //for(int i=1; i<=n; i++) cout << d[i];
- dfs(j);
- }
- }
- //cout << c+s-1;
- /*for(int i=1; i<=m; i++){
- for(int j=1; j<=m; j++){
- cout << mas[i][j] << " ";
- }
- cout << "\n";
- }*/
- //for(int i=1; i<=m; i++) cout << deg[i] << " ";
- int s0=0;
- for(int i=1; i<=m; i++){
- int g=0;
- for(int j=1; j<=m; j++){
- g=g+mas[i][j];
- }
- if(g==0) s0++;
- }
- cout << s+c-p-s0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement