Cod sursa(job #1017705)
| Utilizator | Data | 28 octombrie 2013 09:47:53 | |
|---|---|---|---|
| Problema | Dezastru | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.98 kb |
#include <fstream>
#include <stdio.h>
#define m 1000
using namespace std;
int s[m];
void print(int k)
{
for(int i=0;i<k;i++)
{
printf("%d ", s[i]+1);
}printf("\n");
}
bool ok(int p)
{
for(int i=0;i<p;++i)
{
if(s[p]<=s[i])
return false;
}
return true;
}
void combinari(int n,int k)
{int p=1;
for(;p>=0;)
{
if(s[p]<n)
{
++s[p];
if(ok(p))
{
if(p==k)
{
print(k);
p--;
}
else
{
++p;
s[p]=0;
}
}
}
else
{
--p;
}
}
}
int main()
{int n,k;
freopen("combinari.in","r",stdin);
freopen("combinari.out","w",stdout);
scanf("%i%i",&n, &k);
combinari(n,k);
return 0;
}
