Pagini recente » Cod sursa (job #2144878) | Istoria paginii runda/asdfghjkl/clasament | Cod sursa (job #1318686) | Cod sursa (job #1318936) | Cod sursa (job #1996661)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("submultimi.in");
ofstream out("submultimi.out");
const int NMax = 16 + 5;
int N,nrSol;
int sol[NMax],nrSub[NMax];
void buildSub(int);
int main() {
in>>N;
for (int i=1;i <= N;++i) {
nrSub[i] = 1<<(N-i);
}
int lim = 1<<N;
for (int k=1;k < lim;++k) {
buildSub(k);
for (int i=1;i <= nrSol;++i) {
out<<sol[i]<<' ';
}
out<<'\n';
}
in.close();
out.close();
return 0;
}
void buildSub(int k) {
nrSol = 0;
int nr = 0;
for (int i=1;i <= N && nr < k;++i) {
int low = nr+1,
high = nr + nrSub[i];
if (k > high) {
nr += nrSub[i];
continue;
}
++nr;
sol[++nrSol] = i;
}
}