Cod sursa(job #1036573)
Utilizator | Bracau Alexandru alexandru213 | Data | 19 noiembrie 2013 14:40:22 |
---|---|---|---|
Problema | Dusman | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.87 kb |
#include <fstream>
#include<stdlib.h>
using namespace std;
ifstream in("dusman.in");
ofstream out("dusman.out");
int x,y,N,K,M,nr,ok,b[1001];
char viz[1001], a[1001][1001];
inline void scrie() {
for(int i=1;i<=N;i++)
out<<b[i]<<" ";
}
inline void back(int k){
int i;
for( i=1;i<=N;i++){
if(a[i][b[k-1]]==0&&viz[i]==0){
b[k]=i;
viz[i]=1;
if(k==N){
nr++;
if(nr==K)
{ scrie();
ok=1;
return;
}
}
else
back(k+1);
viz[i]=0;
if(ok==1)
return ;
}
}
}
int main(){
in>>N>>K>>M;
for(int i=1;i<=M;i++){
in>>x>>y;
a[x][y]=a[y][x]=1;}
back(1);
return 0;}