Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- using namespace std;
- int a[100][100],n,m,x[100];
- void citire()
- {
- int i,j;
- ifstream f("grafpapy.txt");
- f>>n>>m;
- for(i=1;i<=n;i++)
- {
- for(j=1;j<=n;j++)
- f>>a[i][j];
- }
- }
- struct muchie{int x,y;};
- muchie l[100];
- void lista_muchii()
- {
- int i,j,k=0;
- for(i=1;i<=n;i++)
- for(j=1;j<=i-1;j++)
- if(a[i][j]==1)
- {
- k++;
- l[k].x=i;
- l[k].y=j;
- }
- }
- int cond(int k)
- {
- if(k>1&&x[k]<=x[k-1])
- return 0;
- else return 1;
- }
- int sol(int k,int nr)
- {
- return (k==nr);
- }
- void afisare(int k,int nr)
- {
- int i,j,b[100][100];
- cout<<endl;
- for(i=1;i<=n;i++)
- for(j=1;j<=n;j++)
- b[i][j]=0;
- for(i=1;i<=nr;i++)
- {
- b[l[x[i]].x][l[x[i]].y]=1;
- b[l[x[i]].y][l[x[i]].x]=1;
- }
- for(i=1;i<=n;i++)
- {
- for(j=1;j<=n;j++)
- cout<<b[i][j]<<" ";
- cout<<endl;
- }
- }
- void back(int nr)
- {
- int gasit,k=1;
- x[k]=0;
- while(k>0)
- {
- gasit=0;
- while(gasit==0&&x[k]<m)
- {
- x[k]++;
- if(cond(k)==1)
- gasit=1;
- }
- if(gasit==0)
- k--;
- else
- if(sol(k,nr)==1)
- afisare(k,nr);
- else
- {
- k++;
- x[k]=0;
- }
- }
- }
- int main()
- {
- int i;
- citire();
- lista_muchii();
- for(i=0;i<=m;i++)
- back(i);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement