#include<bits/stdc++.h> #define mid(l, r) (l + ((r - l) >> 1)) #define sz(x) (int(x.size())) #define repeat(i, a, b) for (int i = (a); i <= (b); i++) #define until(i, a, b) for (int i = (a); i >= (b); i--) #define array_of(T, N) std::array<T, N> #define all(x) x.begin(), x.end() #define range(x, a, b) x + a, x + b + 1 using ll = longlong; using vi = std::vector<int>; using pii = std::pair<int, int>;
voidRun(){ int n; std::cin >> n; if (n % 3 == 0) std::cout << 0; else std::cout << 3 - n % 3; std::cout << "\n"; }
#include<bits/stdc++.h> #define mid(l, r) (l + ((r - l) >> 1)) #define sz(x) (int(x.size())) #define repeat(i, a, b) for (int i = (a); i <= (b); i++) #define until(i, a, b) for (int i = (a); i >= (b); i--) #define array_of(T, N) std::array<T, N> #define all(x) x.begin(), x.end() #define range(x, a, b) x + a, x + b + 1 using ll = longlong; using vi = std::vector<int>; using pii = std::pair<int, int>;
#include<bits/stdc++.h> #define mid(l, r) (l + ((r - l) >> 1)) #define sz(x) (int(x.size())) #define repeat(i, a, b) for (int i = (a); i <= (b); i++) #define until(i, a, b) for (int i = (a); i >= (b); i--) #define array_of(T, N) std::array<T, N> #define all(x) x.begin(), x.end() #define range(x, a, b) x + a, x + b + 1 using ll = longlong; using vi = std::vector<int>; using pii = std::pair<int, int>;
constexprint N = 2e5 + 10; int n, a[N], b[N]; char v[N];
#include<bits/stdc++.h> #define mid(l, r) (l + ((r - l) >> 1)) #define sz(x) (int(x.size())) #define repeat(i, a, b) for (int i = (a); i <= (b); i++) #define until(i, a, b) for (int i = (a); i >= (b); i--) #define array_of(T, N) std::array<T, N> #define all(x) x.begin(), x.end() #define range(x, a, b) x + a, x + b + 1 using ll = longlong; using vi = std::vector<int>; using pii = std::pair<int, int>;
int n, k; std::array<std::bitset<1000>, 50> dp; int pL[50][1000], pj[50][1000];
intc(int d){ return d * (d - 1) / 2; } voidRun(){ std::cin >> n >> k; dp.fill(0); int s = c(n) - k; // increasing
dp[0].set(0); for (int i = 0; i < 50; ++i) for (int j = 0; j < 1000; ++j) pL[i][j] = pj[i][j] = -1;
for (int i = 1; i <= n; i++) { for (int j = 0; j < i; j++) { int shift = c(i - j); for (int x = shift; x <= s; x++) { if (dp[j].test(x - shift) && !dp[i].test(x)) { dp[i].set(x); pL[i][x] = i - j; pj[i][x] = x - shift; } } } }
if (!dp[n].test(s)) { std::cout << 0 << "\n"; return; }
std::vector<int> lens_rev; for (int i = n, x = s; i > 0;) { int L = pL[i][x]; if (L == -1) { std::cout << 0 << "\n"; return; } lens_rev.push_back(L); int px = pj[i][x]; i -= L; x = px; } std::reverse(lens_rev.begin(), lens_rev.end());
std::vector<int> ans; ans.reserve(n); int cur = n; for (int L : lens_rev) { for (int v = cur - L + 1; v <= cur; ++v) ans.push_back(v); cur -= L; }
for (int i = 0; i < n; ++i) { if (i) std::cout << ' '; std::cout << ans[i]; } std::cout << "\n"; }
#include<bits/stdc++.h> #define mid(l, r) (l + ((r - l) >> 1)) #define sz(x) (int(x.size())) #define repeat(i, a, b) for (int i = (a); i <= (b); i++) #define until(i, a, b) for (int i = (a); i >= (b); i--) #define array_of(T, N) std::array<T, N> #define all(x) x.begin(), x.end() #define range(x, a, b) x + a, x + b + 1 using ll = longlong; using vi = std::vector<int>; using pii = std::pair<int, int>;
constexprint N = 5e5 + 10;
int ac, dr; int n, m; int s[N], a[N], d[N]; int bucket[N];
voidadd(int pos, int v, int p = 1, int l = 0, int r = n){ if (l == r) { T[p].sum += v; T[p].minpre = std::min(0, T[p].sum); return; } int mid = l + ((r - l) >> 1); if (pos <= mid) add(pos, v, p << 1, l, mid); elseadd(pos, v, p << 1 | 1, mid + 1, r); pushup(p); }
intquery(int ad, int p = 1, int l = 0, int r = n){ if (l == r) return (ad + T[p].sum >= 0 ? l : l - 1); int mid = l + ((r - l) >> 1); auto &L = T[p << 1], &R = T[p << 1 | 1]; if (L.minpre + ad >= 0) returnquery(ad + L.sum, p << 1 | 1, mid + 1, r); elsereturnquery(ad, p << 1, l, mid); }
voidRun(){ std::cin >> ac >> dr >> n; repeat(i, 0, n) bucket[i] = 0;