# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
503384 | Stickfish | Present (RMI21_present) | C++17 | 2130 ms | 16208 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <iostream>
#include <vector>
#include <bitset>
#include <algorithm>
using namespace std;
using ll = long long;
const int MAXN = 32;
const int MAXK = 1000008;
ll divcnt[MAXN];
ll isgcdcnt[MAXN];
bitset<MAXN> bs;
bitset<MAXN> ans[MAXK];
bool recur(ll& k, vector<ll>& v) {
int n = v.size();
int t0 = v[0];
for (int i = 1; i <= t0; ++i) {
divcnt[i] = isgcdcnt[i] = bs[i] = 0;
}
for (auto t : v)
bs[t] = 1;
bool isok = true;
for (int t = t0; t >= 1; --t) {
for (int ti = t; ti <= t0; ti += t) {
//if (ti % t == 0) {
divcnt[t] += bs[ti];
isgcdcnt[t] -= isgcdcnt[ti];
//}
}
isgcdcnt[t] += divcnt[t] * (divcnt[t] - 1);
if (!bs[t] && isgcdcnt[t] > 0) {
isok = false;
break;
}
}
if (isok) {
ans[k++] = bs;
if (k >= MAXK)
return true;
}
int x = v.back();
for (int t = 1; t < x; ++t) {
v.push_back(t);
if (recur(k, v))
return true;
v.pop_back();
}
return false;
}
void solve() {
ll k;
cin >> k;
if (k == 0) {
cout << 0 << endl;
return;
}
--k;
cout << ans[k].count() << ' ';
for (int t = 1; t < MAXN; ++t) {
if (ans[k][t])
cout << t << ' ';
}
cout << endl;
}
signed main() {
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
vector<ll> ans;
ll k = 0;
for (int t = 1;; ++t) {
ans.push_back(t);
if (recur(k, ans)) {
break;
}
ans.pop_back();
}
int t;
cin >> t;
while (t--) {
solve();
}
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |