Submission #643356

#TimeUsernameProblemLanguageResultExecution timeMemory
643356Matteo_VerzPresent (RMI21_present)C++17
29 / 100
3964 ms16524 KiB
#include <bits/stdc++.h> #ifdef BLAT #include "debug/debug.hpp" #else #define debug(x...) #endif using namespace std; void printSet(long long set, int setidx = 0) { // cout << "S" << setidx << " = "; cout << __builtin_popcountll(set) << ' '; for (int i = 1; i <= 40; i++) if (set & (1LL << i)) cout << i << ' '; cout << endl; } void generateNextSet(long long &mask) { for (int i = 1; i <= 40; i++) { mask ^= (1LL << i); if (mask & (1LL << i)) { break; } } queue <int> q; for (int i = 1; i <= 40; i++) for (int j = 1; j <= 40; j++) if ((mask & (1LL << i)) && (mask & (1LL << j))) { int g = __gcd(i, j); if (!(mask & (1LL << g))) { mask |= (1LL << g); q.push(g); } } while (q.size()) { int fr = q.front(); q.pop(); for (int i = 1; i <= 40; i++) if ((mask & (1LL << i))) { int g = __gcd(fr, i); if (!(mask & (1LL << g))) { mask |= (1LL << g); q.push(g); } } } } int main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); long long set = 2; vector <long long> sets = {0}; for (int i = 1; i <= 1000000; i++) { sets.push_back(set); generateNextSet(set); } debug(sets.size()); int t; cin >> t; while (t--) { int k; cin >> k; printSet(sets[k]); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...