Mai intai trebuie sa te autentifici.
Cod sursa(job #2132497)
Utilizator | Data | 15 februarie 2018 20:07:28 | |
---|---|---|---|
Problema | Combinari | Scor | 70 |
Compilator | c | Status | done |
Runda | Arhiva educationala | Marime | 0.7 kb |
#include <stdio.h>
void readfrom(int *n, int *k)
{
FILE *f;
f = fopen("combinari.in", "r");
fscanf(f, "%d %d", n, k);
fclose(f);
}
int x[20];
void print(int k)
{
int i; FILE *g;
g = fopen("combinari.out", "a");
for (i = 1; i <= k; i++)
fprintf(g, "%d ", x[i]);
fprintf(g, "\n");
fclose(g);
}
void back(int n, int k, int m)
{
int i, j, dis = 0;
if (m > k) { print(m - 1); return; }
for (i = 1; i <= n; i++)
{
dis = 0;
for (j = 1; j < m; j++)
if (x[j] == i) { dis = 1; break; }
if (x[m - 1] > i) dis = 1;
if (!dis) { x[m] = i; back(n, k, m + 1); }
}
}
int main(void)
{
int n, k; FILE *g;
readfrom(&n, &k);
g = fopen("combinari.out", "w"); fclose(g);
back(n, k, 1);
return (0);
}