Cod sursa(job #1661567)

Utilizator robertkarolRobert Szarvas robertkarol Data 23 martie 2016 23:07:32
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.98 kb
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("dusman.in");
ofstream fout("dusman.out");
int n,i,a[1001][1001],x,y,st[1001],p,m,sol,v[1001],sw;
void tip()
{
    int i;
    for(i=1;i<=n;i++)
        fout<<st[i]<<" ";
        fout<<"\n";
   return;
}
inline int valid(int k)
{
    int i;
    if(k>1&&a[st[k-1]][st[k]]) return 0;
    return 1;
}
void back(int k)
{
    int i;
    if(sw) return;
    for(i=1;i<=n;i++)
    {
        if(v[i]==0)
        {
           st[k]=i;
            v[i]=1;
        if(valid(k))
            if(k==n)
        {
            sol++;
            if(sol==p)
            {
                tip();
                sw=1;
                break;
                return;
            }
        }
        else back(k+1);
        v[i]=0;
        }

    }
}
int main()
{
    fin>>n>>p>>m;
    for(i=1;i<=m;i++)
    {
        fin>>x>>y;
        a[x][y]=a[y][x]=1;
    }
    back(1);
    return 0;
}