Cod sursa(job #3322443)

Utilizator mariusharabariMarius Harabari mariusharabari Data 14 noiembrie 2025 09:17:48
Problema Dusman Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.19 kb
#include <bits/stdc++.h>
using namespace std;

ifstream fin("dusman.in");
ofstream fout("dusman.out");

int n, m, nr, c, k, d[5005][5005], st[5005], u[5005];

bool suc(){
    u[st[k]]=0;
    st[k]++;
    while(st[k]<=n&&(u[st[k]]||d[st[k-1]][st[k]]))
        st[k]++;
    if(st[k]>n) return 0;
    else{
        u[st[k]]=1;
        return 1;
    }
}

void afis(){
    for(int i=1;i<=n;i++)
        fout<<st[i]<<' ';
}
int main(){
    ios::sync_with_stdio(0);
    fin.tie(NULL);
    fout.tie(NULL);

    fin>>n>>nr>>m;
    int x, y;
    for(int i=1;i<=m;i++){
        fin>>x>>y;
        d[x][y]=d[y][x]=1;
    }

    k=1;
    st[k]=0;

    while(k>0){
        if(suc()){
            if(k==n){
                c++;
                //cout<<c<<'.'<<' ';
                //for(int i=1;i<=n;i++)
                    //cout<<st[i]<<' ';
                //cout<<'\n';
                if(c==nr){
                    afis();
                    break;
                }
            }
            else{
                k++;
                st[k]=0;
            }
        }
        else{
            u[st[k]]=0;
            k--;
        }
    }

    return 0;
}