Cod sursa(job #690215)
| Utilizator | Data | 25 februarie 2012 13:27:41 | |
|---|---|---|---|
| Problema | Combinari | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.61 kb |
#include <fstream>
using namespace std;
short OK[18], NO[18];
void comb(short z, short N, short K)
{
short i;
if(z - 1 == K)
{
for(i=1;i<=K;++i)
printf("%hd ", OK[i]);
printf("\n");
}
else
for(i=1;i<=N;++i)
if(!NO[i] && OK[z-1] < i)
{
OK[z] = i;
NO[i] = 1;
comb(z + 1, N, K);
NO[i] = 0;
}
}
int main()
{
short N, K;
freopen("combinari.in", "r", stdin);
freopen("combinari.out", "w", stdout);
scanf("%hd %hd", &N, &K);
fclose(stdin);
comb(1, N, K);
fclose(stdout);
return 0;
}