Pagini recente » Clasament oni_2018_x_first_day | Clasament sas | Istoria paginii runda/baraj-science-on/clasament | Istoria paginii utilizator/yourlove | Cod sursa (job #2000153)
#include <iostream>
#include <fstream>
#include <stack>
#include <vector>
#include <cstdlib>
#include <ctime>
#include <algorithm>
#include <stack>
using namespace std;
ifstream in("submultimi.in");
ofstream out("submultimi.out");
#define ll long long
#define pb push_back
const int inf = 1e9 + 5;
const int NMax = 20 + 5;
int N;
int nrSub[NMax],v[NMax];
void solve(int);
int main() {
in>>N;
for (int i=1;i <= N;++i) {
nrSub[i] = 1<<(N-i);
}
int lim = 1<<(N);
for (int i=1;i < lim;++i) {
solve(i);
}
in.close();
out.close();
return 0;
}
void solve(int nr) {
int val = 1,pos = 0,idx = 0;
while (pos < nr) {
int low = pos + 1, high = pos + nrSub[val];
if (low <= nr && nr <= high) {
pos = low;
v[++idx] = val;
++val;
}
else {
pos = high;
++val;
}
}
for (int i=1;i <= idx;++i) {
out<<v[i]<<' ';
}
out<<'\n';
}