Cod sursa(job #1391128)

Utilizator MaarcellKurt Godel Maarcell Data 17 martie 2015 17:34:48
Problema Dusman Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include <iostream>
#include <fstream>
using namespace std;

int N,K,M,graf[1010][1010],L,sol[1010],tot; bool v[1010];

void dfs(int nod, int cnt){
    if (tot==K) return;

    sol[++L]=nod;
    v[nod]=1;
    if (cnt==N && tot!=K){
        tot++;
        L--;
        v[nod]=0;
        return;
    }

    int i;
    for (i=1; i<=N; i++)
        if (graf[nod][i] && !v[i])
            dfs(i,cnt+1);


    v[nod]=0;
    L--;
}

int main(){
    ifstream fin("dusman.in");
    ofstream fout("dusmna.out");
    fin >> N >> K >> M;

    int i,j,x,y;
    for (i=1; i<=N; i++)
        for (j=1; j<=N; j++)
            if (i!=j) graf[i][j]=1;

    for (i=1; i<=M; i++){
        fin >> x >> y;
        graf[x][y]=graf[y][x]=0;
    }

    for (i=1; i<=N; i++) dfs(i,1);

    for (i=1; i<=N; i++) fout << sol[i] << " ";
    return 0;
}