Cod sursa(job #1542821)

Utilizator SilviuIIon Silviu SilviuI Data 5 decembrie 2015 18:12:50
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.65 kb
#include <stdio.h>
#include <stdlib.h>
#define nmax 1010
using namespace std;
int n,k,m,x,y,i,j,t[nmax],nr,fr[nmax];
bool ok[nmax][nmax];
void back(int x)
{
    if (x==n+1 && nr<k-1) { nr++; return; }
    if (x==n+1 && nr==k-1) {
        for (int i=1;i<=n;i++) printf("%d ",t[i]);
        printf("\n");
        exit(0);
    }
    for (int i=1;i<=n;i++)
        if (!ok[t[x-1]][i] && fr[i]==0) { t[x]=i; fr[i]=1; back(x+1); fr[i]=0; }
}
int main() {
freopen("dusman.in","r",stdin);
freopen("dusman.out","w",stdout);
scanf("%d %d %d",&n,&k,&m);
for (i=1;i<=m;i++) {
    scanf("%d %d",&x,&y); ok[x][y]=ok[y][x]=true;
}
back(1);
return 0;
}