Pagini recente » Cod sursa (job #1659587) | Statistici Marc Spataru (marckasz) | Cod sursa (job #2075478) | Cod sursa (job #2737311) | Cod sursa (job #1688787)
#include <iostream>
#include <fstream>
using namespace std;
int st[20];
int n;
ofstream g("combinari.out");
int succesor(int k){
if(st[k] <= n){
st[k]++;
return 1;
}
return 0;
}
int valid(int k){
for(int i = 0; i < k; i++)
if(st[k] == st[i])
return 0;
return 1;
}
int tipar(int k){
int ok = 1;
for(int i = 0; i < n-1; i++)
if(st[i] > st[i+1]){
ok = 0;
return 0;
break;
}
for(int i = 0; i < n; i++)
g << st[i] << " ";
g << endl;
}
int solutie(int k){
return k == n-1;
}
int main()
{
fstream f("combinari.in");
int k, comb; f >> comb >> n;
k = 0; st[k] = 0;
while(k >= 0){
int as = succesor(k);
int ev = valid(k);
while(as && !ev){
as = succesor(k);
if(as)
ev = valid(k);
}
if(as){
if(solutie(k)){
if(tipar(k)){
comb--;
if(comb == 0)
break;
}
}
else{
k++;
st[k] = 0;
}
}
else
k--;
}
f.close(); g.close();
return 0;
}