Cod sursa(job #1050237)

Utilizator DanyPrvPirvoaica Daniel DanyPrv Data 8 decembrie 2013 13:38:50
Problema Dusman Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
using namespace std;
ifstream f("dusman.in");
ofstream g("dusman.out");
int i,y,z,x[1001],ok,n,sol,k,viz[1001],nr,m;
char a[1001][1001];
void verificare(){
    int i;
    for(i=1;i<=n-1;i++)
        if(a[x[i]][x[i+1]]!=0||a[x[i+1]][x[i]]!=0)
            break;
    if(i==n)
        sol++;
    if(sol==nr)
        ok=1;
}
void back(int k){
    int i;
    for(i=1;i<=n&&ok==0;i++){
        if(viz[i]==0){
            x[k]=i;
            viz[i]=1;
            if(k!=n)
                back(k+1);
            else{
                verificare();
                if(ok==1){
                    for(int j=1;j<=n;j++)
                        g<<x[j]<<' ';
                }
            }
            viz[i]=0;
        }
    }
}
int main()
{
    f>>n>>nr>>m;
    for(i=1;i<=m;i++){
        f>>z>>y;
        a[z][y]=a[y][z]=1;
    }
    back(1);
    return 0;
}