Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- int m, n, a[20][20], nr, nr1, OK, nod, k, st[20], viz[20], x, i, j, s, v[20], grad;
- ifstream f("graf.in");
- void citire()
- {
- f>>n>>m;
- int x,y,i;
- for(i=1;i<=m;i++)
- {
- f>>x>>y;
- a[x][y]=a[y][x]=1;
- }
- }
- int main()
- {
- nr=0;
- citire();
- OK=0;
- nod=1;
- while(OK==0)
- {
- nr++;
- k=1;
- st[k]=nod;
- viz[nod]=nr;
- while(k>0)
- {
- x=st[k];
- for(i=1;i<=n;i++)
- if(a[x][i]==1 && viz[i]==0)
- {
- k++;
- st[k]=i;
- viz[i]=nr;
- i=n+2;
- }
- if(i==n+1)
- k--;
- }
- OK=1;
- for(i=1;i<=n;i++)
- if(viz[i]==0)
- {
- nod=i;
- OK=0;
- i=n+1;
- }
- }
- for(i=1;i<=n;i++)
- {
- s=0;
- for(j=1;j<=n;j++)
- s=s+a[i][j];
- a[i][0]=s;
- }
- for(i=1;i<=nr;i++)
- {
- nr1=0; // nr nod componenta conexa curenta
- for(j=1;j<=n;j++)
- if(viz[j]==i)
- {
- nr1++;
- v[nr1]=j;
- }
- OK=1; //pp. ca comp. conexa este subgraf regulat
- grad=a[v[1]][0];
- for(k=2;k<=nr1;k++)
- if(grad!=a[v[k]][0])
- OK==0;
- if(OK==1)
- {
- for(j=1;j<=nr1;j++)
- cout<<v[j]<<" ";
- j=nr+1;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement