Cod sursa(job #457953)

Utilizator cont_de_testeCont Teste cont_de_teste Data 22 mai 2010 13:31:27
Problema Dusman Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.04 kb
#include<fstream.h>
    ifstream f("dusman.in");
    ofstream g("dusman.out");
    int sol,v[10001],p,n,m,a[10001][4],i,j,x,y,ok=0,l[10001];
    int bun(int k){
        int i;
        for(i=1;i<k;++i) if(v[k]==v[i]) return 0;
        for(i=1;i<=3;++i) if( a[ v[k] ][ i ]== v[k-1] ) return 0;
        return 1;
    }
    int afis(){
        int i;
        for(i=1;i<=n;++i) g<<v[i]<<' ';
		ok=1;
        g<<'\n';
    }


    int back(int k){
		if(!ok)
		{
			int i;
            if(k>n){
			    ++sol;
		        if(sol==p) afis();
		    }
            else
                for(i=1;i<=n;++i)
                    if(!l[i]&&!a[v[k-1]][i]){
                    v[k]=i;
                    l[i] = 1;
                    back(k+1);
                    l[i] = 0;
                    }

		}
    }
    int main(){
        f>>n>>p>>m;
        for(i=1;i<=m;++i){
            f>>x>>y;
            a[x][y]=a[y][x] = 1;
        }
		v[0]=10006;
        back(1);
        //g<<sol<<'\n';
        g.close();
        return 0;
    }