#include <bits/stdc++.h>
using namespace std;
#define sz(x) (int)x.size()
#define all(x) x.begin() , x.end()
const int N = 19;
vector<vector<int>>store;
vector<int>vec;
int gcd(int a , int b){
if(a == 0)return b;
return gcd(b % a , a);
}
void dfs(int ind){
if(ind == N+1){
bool bl = 1;
for(auto itr1 : vec){
for(auto itr2 : vec){
bl &= count(all(vec) , gcd(itr1 , itr2));
if(!bl)break;
}
}
if(bl)store.push_back(vec);
return;
}
dfs(ind+1);
vec.push_back(ind);
dfs(ind+1);
vec.pop_back();
}
void solve(){
dfs(1);
for(int i = 0;i<sz(store);i++){
reverse(all(store[i]));
}
sort(all(store));
for(int i = 0;i<sz(store);i++){
reverse(all(store[i]));
}
// for(int i = 0;i<20;i++){
// for(auto itr : store[i]){
// cout << itr << " ";
// }
// cout << endl;
// }
int q;
cin >> q;
while(q--){
int x;
cin >> x;
cout << sz(store[x]) << " ";
for(auto itr : store[x]){
cout << itr << " ";
}
cout << '\n';
}
}
signed main(){
ios_base::sync_with_stdio(0);cin.tie(0);
int testcase=1;//cin >> testcase;
while(testcase--)solve();
cerr << 1000.0 * clock() / CLOCKS_PER_SEC << " ms" << endl;
}
| # | 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... |