Cod sursa(job #3324950)

Utilizator mateispnSpinu Matei mateispn Data 24 noiembrie 2025 11:48:00
Problema Dusman Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.04 kb
#include <bits/stdc++.h>
using namespace std;
int st[10],n,as,K,M,v[1001],a[1001],nr=0;
ifstream fin("dusman.in");
ofstream fout("dusman.out");
void init(int k)
{
    st[k]=0;
}
bool succesor(int k)
{
    if(st[k]<n)
    {
        st[k]++;
        return 1;
    }
    else return 0;
}
bool valid(int k)
{
    int i;
    for(i=1;i<=k-1;i++)
        if(st[k]==st[i]) return 0;
    if(k>1)
    {
      for(i=1;i<=M;i++)
        if((st[k-1]==v[i] && st[k]==a[i]) || (st[k-1]==a[i] && st[k]==v[i])) return 0;
    }
    return 1;
}
bool solutie(int k)
{
    return k==n+1;
}
void tipar(int k)
{
    int i;
    for(i=1;i<k;i++)
        fout<<st[i]<<' ';
    fout<<'\n';
}
void back(int k)
{
    if(solutie(k))
    {
        nr++;
        if(nr==K) tipar(k);
    }
    else
    {
        init(k);
        while(succesor(k))
            if(valid(k))
                back(k+1);
    }
}
int main()
{
    fin>>n>>K>>M;
    for(int i=1;i<=M;i++)
    {
        fin>>v[i]>>a[i];
    }
    back(1);
    return 0;
}