Submission #761473

#TimeUsernameProblemLanguageResultExecution timeMemory
761473US3RN4M3Present (RMI21_present)C++17
29 / 100
740 ms74832 KiB
#include<bits/stdc++.h>
using namespace std;
using ll = long long;

const int mx = 23;

const int mask = (1 << mx) - 1;

int deltas[1 << mx];

vector<int> rules[mx];
const int mx3 = 40;
int g[mx3][mx3];

bool check(int i) {
	for(int a = 1; a < mx; a++) if((i >> a) & 1) for(int b = a + 1; b < mx; b++) if((i >> b) & 1) {
		if(!((i >> g[a][b]) & 1)) return false;
	}
	return true;
}

bool check2(ll i) {
	for(int a = 1; a < mx3; a++) if((i >> a) & 1) for(int b = mx; b < mx3; b++) if((i >> b) & 1) {
		if(!((i >> g[a][b]) & 1)) return false;
	}
	return true;
}
const int mx2 = 1000001;
int valid[mx2];

vector<int> vf(int i) {
	vector<int> res;
	for(int b = 0; b < 30; b++) {
		if((i >> b) & 1) res.push_back(b);
	}
	return res;
}
main() {
	int prev = 0;
	for(int i = 0; i < mx3; i++) for(int j = 0; j < mx3; j++) {
		g[i][j] = __gcd(i, j);
	}
	deltas[mask - 1] = 2;
	int x = 0;
	for(int i = 2; i <= mask - 1; i += 2) {
		if(check(i)) {
			x++;
			deltas[prev] = i - prev;
			prev = i;
		}
	}
	int cnt = 1;
	ll cur = 0;
	valid[0] = 0;
	while(cnt < mx2) {
		do {
			cur += deltas[cur & mask];
		} while(!check2(cur));
		valid[cnt++] = cur;
	}
	int t; cin >> t;
	for(int i = 0; i < t; i++) {
		ll q; cin >> q;
		vector<int> a = vf(valid[q]);
		cout << a.size() << " ";
		for(int j : a) cout << j << " ";
		cout << endl;
	}
	/*
	cout << valid[mx2 - 1] << endl;
	for(int i = 1; i <= 30; i++) if((valid[mx2 - 1] >> i) & 1) cout << i << " ";
	cout << "done" << endl;*/
}

Compilation message (stderr)

Main.cpp:38:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   38 | main() {
      | ^~~~
#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...