Pagini recente » Cod sursa (job #3185101) | Monitorul de evaluare | Cod sursa (job #2653304) | Cod sursa (job #3255922) | Cod sursa (job #212492)
Cod sursa(job #212492)
#include<iostream.h>
#include<fstream.h>
int v[1000][3],x[1000],n,k,r,nr,m,i;
void tipar()
{ int i=1;
for(i=1;i<=n;i++)
cout<<x[i]<<" ";
cout<<endl;
}
int valid(int k)
{ int i;
for(i=1;i<k;i++)
if(x[i]==x[k]) return 0;
for(i=1;i<=m;i++)
{if(v[i][1]==x[k]&&v[i][2]==x[k-1]) return 0;
if(v[i][2]==x[k]&&v[i][1]==x[k-1]) return 0;
}
return 1;
}
int sol(int k)
{ if(k==n) return 1;
return 0;
}
void back()
{k=1; x[k]=0;
while(k>0) if(x[k]<n)
{x[k]++;
if(valid(k))
if(sol(k)) {nr++; if(nr==r) {tipar();break;} }
else {k++;
x[k]=0;
}
}
else k--;
}
void main()
{ifstream h("dusman.in");
h>>n>>r>>m;
for(i=1;i<=m;i++) h>>v[i][1]>>v[i][2];
back();
}