Cod sursa(job #2711070)

Utilizator nubnubMeh Neh nubnub Data 23 februarie 2021 17:22:50
Problema Dusman Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <fstream>
#include <vector>

#define MAX 1005

using namespace std;

vector<int> v[MAX]; bool taken[MAX];
int n, k, p, a, b, s, sol[MAX];

inline bool dusman(int a, int b)
{
    for(int i = 0; i < v[a].size(); i++)
        if(v[a][i] == b) return true;
    return false;
}

void back(int poz)
{
    if(poz == n + 1)
    {
        k--;
        return;
    }
    for(int i = 1; i <= n && k; i++)
    {
        if(!taken[i] && !dusman(i, sol[poz - 1]))
        {
            taken[i] = true;
            sol[poz] = i;
            back(poz + 1);
            taken[i] = false;
        }
    }
}

int main()
{
    ifstream in("dusman.in"); in>>n>>k>>p;
    while(p--)
    {
        in>>a>>b;
        v[a].push_back(b);
        v[b].push_back(a);
    } in.close();
    back(1);
    ofstream out("dusman.out");
    for(int i = 1; i <= n; i++) out<<sol[i]<<" ";
    out.close();
    return 0;
}