Cod sursa(job #3325482)

Utilizator Rradu_v2Catana Radu Rradu_v2 Data 25 noiembrie 2025 16:01:15
Problema Dusman Scor 100
Compilator c-64 Status done
Runda Arhiva de probleme Marime 1.52 kb
#include <stdio.h>

int n, k;
char matrix[1000][1000];
char f[1000];
int secv[1000];

int stop=0;
void steinsgate(int pos) {
    int i;
    //printf("%d\n", pos);
    // for(i=0; i<pos; i++)
    //     printf("%d ", secv[i]);
    // printf("\n");
    if(pos==n) {
        k--;
        if(k==0) {
            stop = 1;
        }
    }
    else {
        i = 0;
        while(i<n && stop==0) {
            if(f[i]==0 && (pos==0 || matrix[secv[pos-1]][i]==0)) {
                secv[pos] = i;
                f[i] = 1;
                steinsgate(pos+1);
                if(stop==0) {
                    f[i] = 0;
                    secv[pos] = 0;
                }
            }
            i++;
        }
    }
}

int main() {
    //FILE *fin = fopen("D:/GitHub_Repos/AlgoArchive/Algo_v2/InfoArena/Dusman/dusman.in", "r");
    //FILE *fout = fopen("D:/GitHub_Repos/AlgoArchive/Algo_v2/InfoArena/Dusman/dusman.out", "w");
    FILE *fin = fopen("dusman.in", "r");
    FILE *fout = fopen("dusman.out", "w");
    int m, i, x, y;
    fscanf(fin, "%d%d%d", &n, &k, &m);
    for(i=0; i<m; i++) {
        fscanf(fin, "%d%d", &x, &y);
        matrix[x-1][y-1] = 1;
        matrix[y-1][x-1] = 1;
    }
    // for(y=0; y<n; y++) {
    //     for(x=0; x<n; x++)
    //         fprintf(fout, "%d ", matrix[y][x]);
    //     fprintf(fout, "\n");
    // }
    steinsgate(0);
    for(i=0; i<n; i++)
        fprintf(fout, "%d ", secv[i]+1);
    fprintf(fout, "\n");
    fclose(fin);
    fclose(fout);
    return 0;
}