Cod sursa(job #429476)

Utilizator vladtarniceruVlad Tarniceru vladtarniceru Data 30 martie 2010 10:45:27
Problema Dusman Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 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;
    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 k){
        int i;
        for(i=1;i<k;++i) g<<v[i]<<' ';
		ok=1;
        g<<'\n';
    }
    int back(int k){
		if(!ok){
			int i;
            if(k>n){
			    ++sol;
		        if(sol==p) afis(k);
		    }
            else
                for(i=1;i<=n;++i){
                    v[k]=i;
                    if(bun(k)) back(k+1);
                }
		}
    }
    int main(){
        f>>n>>p>>m;
        for(i=1;i<=m;++i){
            f>>x>>y;
            a[x][++a[x][0]]=y;
            a[y][++a[y][0]]=x;
        }
		v[0]=10006;
        back(1);
        //g<<sol<<'\n';
        g.close();
        return 0;
    }