Cod sursa(job #2136092)

Utilizator robx12lnLinca Robert robx12ln Data 19 februarie 2018 17:12:29
Problema Dusman Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.85 kb
#include<fstream>
#include<set>
using namespace std;
ifstream fin("dusman.in");
ofstream fout("dusman.out");
int N, K, M, S[1005], f[1005];
set<int> R[1005];
void back( int k ){
    if( k == N + 1 ){
        K--;
        if( K == 0 )
            for( int i = 1; i <= N; i++ )
                fout << S[i] << " ";
    }else{
        for( int i = 1; i <= N && K != 0; i++ ){
            if( f[i] == 1 )
                continue;
            if( R[ S[k - 1] ].find( i ) != R[ S[k - 1] ].end() )
                continue;
            f[i] = 1;
            S[k] = i;
            back( k + 1 );
            f[i] = 0;
        }
    }
    return;
}
int main(){
    fin >> N >> K >> M;
    for( int i = 1; i <= M; i++ ){
        int a, b; fin >> a >> b;
        R[a].insert( b );
        R[b].insert( a );
    }
    back( 1 );
    return 0;
}