Cod sursa(job #2076204)

Utilizator teogeoBanu Teodora teogeo Data 26 noiembrie 2017 12:24:45
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <fstream>
using namespace std;
ifstream cin("dusman.in");
ofstream cout("dusman.out");
int v[1001],k,n,m,sol,nr,viz[1001],a[1001][1001],x,y;
int valid(int k){
   if(k>1&&a[v[k]][v[k-1]]!=0)
    return 0;
   else
    return 1;

}
void Tipar(){
    int j;
    for(j=1;j<=n;j++)
        cout<<v[j]<<" ";
    cout<<'\n';
}
void permutare(int k){
    int i;
    for(i=1;i<=n;i++){
         if(viz[i]==0){
            v[k]=i;
            viz[i]=1;
            if(valid(k)==1){
               if(k==n){
                  sol++;
                if(sol==nr){
                    Tipar();
                    return;
                }

               }
              else
                permutare(k+1);
            }
             viz[i]=0;
             if(sol==nr)
             return;
            }
        }
     }

int main()
{
    cin>>n>>nr>>m;
    for(int i=1;i<=m;i++){
    cin>>x>>y;
    a[x][y]=a[y][x]=1;
    }
    permutare(1);
    return 0;
}