Pagini recente » Cod sursa (job #1939343) | Cod sursa (job #2207452) | Cod sursa (job #156135) | Cod sursa (job #131991) | Cod sursa (job #244452)
Cod sursa(job #244452)
#include<fstream.h>
#include<string.h>
ifstream f("dusman.in");
ofstream g("dusman.out");
int nr,q,i,k,m,n,x[1000],x1,x2,v[1000],BRAK=0;
int a[10000][10000];
void tipar ()
{nr++;
if (nr==q) for (i=0;i<=k;i++) {g<<x[i]<<" ";BRAK=1;}}
int valid (int k)
{int i,ok=1;
if (v[x[k]]>1) ok=0;
//for (i=0;i<k;i++) if (x[k]==x[i]) ok=0;
if (k>0) if (a[x[k]][x[k-1]]) ok=0;
return ok;
}
int solutie (int k)
{if (k==(n-1)) return 1;
else return 0;}
void back ()
{k=0;x[k]=0;
while (k>-1)
if (x[k]<n)
{if(x[k]!=0) v[x[k]]--;x[k]++;v[x[k]]++;
if (valid (k)) if (solutie(k)) {tipar();if(BRAK) break;}
else {k++;x[k]=0;}
}
else {v[x[k]]--;k--;}
}
int main ()
{f>>n>>q>>m;
for (i=0;i<m;i++) {f>>x1>>x2;a[x1][x2]++;a[x2][x1]++;}
back ();
return 0;}