Cod sursa(job #1426600)

Utilizator PlatonVPlaton Vlad PlatonV Data 29 aprilie 2015 23:21:26
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
/*
 * COMBINARi
 * PLATON VLAD
 * */

#include <stdio.h>

int n, k;
int a[18];

FILE* f;
FILE* g;

bool bun(int x, int pos)
{
    for (int i = 0; i < pos; i++)
        if (a[i] == x || a[i] > x)
            return false;
    return true;
}

int back(int pos, int n, int k)
{
    if (pos == k)
    { 
        for (int i = 0; i < k; i++)
            fprintf(g, "%d ", a[i]);
        fprintf(g, "\n");
    }
    else
        for (int i = 1; i <= n; i++)
            if (bun(i, pos))
            {
                a[pos] = i;
                back(pos+1, n, k);    
            }
}

int main()
{
    f = fopen("combinari.in", "r");
    g = fopen("combinari.out", "w");

    fscanf(f, "%d%d", &n, &k);

    back(0, n, k);

    return 0;
}