Pagini recente » Cod sursa (job #768214) | Cod sursa (job #729105) | Cod sursa (job #2356086) | Cod sursa (job #416230) | Cod sursa (job #212507)
Cod sursa(job #212507)
#include<iostream.h>
#include<fstream.h>
int v[1000][3],x[1000],n,k,r,nr,m,i,z;
void tipar()
{ ofstream f("dusman.out");
for(i=1;i<=n;i++)
f<<x[i]<<" ";
}
int valid(int k)
{ int i;
for(i=1;i<k;i++)
if(x[i]==x[k]) return 0;
if(k>1)
for(i=0;i<3;i++)
if(v[x[k]][i]==x[k-1]) return 0;
return 1;
}
void back()
{
k=1; x[k]=0;
while(k>0) if(x[k]<n)
{x[k]++;
if(valid(k))
if(k==n) {nr++; if(nr==r) {tipar();break;} }
else {k++;
x[k]=0;
}
}
else k--;
}
int main()
{ifstream h("dusman.in");
h>>n>>r>>m;
for(i=1;i<=m;i++) {h>>z>>k;
if(v[z][0]==0) v[z][0]=k;
else if(v[z][1]==0) v[z][1]=k;
else v[z][2]=k;
if(v[k][0]==0) v[k][0]=z;
else if(v[k][1]==0) v[k][1]=z;
else v[k][2]=z;
}
back();
return 0;
}