Submission #334266

#TimeUsernameProblemLanguageResultExecution timeMemory
334266FischerBrunhilda’s Birthday (BOI13_brunhilda)C++14
0 / 100
292 ms262148 KiB
#include <bits/stdc++.h>
#define rep(x, y, z) for (int x = y; x < z; ++x)
#define reo(x, y) for (int x = 0; x < y; ++x)
using namespace std;

const int maxn = 1e7 + 10;
vector<int> f[maxn];
int cnt[maxn];
int dp[maxn];

int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(nullptr);
	int m, q;
	cin >> m >> q;
	vector<int> p(m);
	for (int& x : p) {
		cin >> x;
		for (int j=x; j<maxn; j+=x) f[j].push_back(j - x);
	}
	int front = 0;
	cnt[0] = p.size();
	for (int i = 1; i < maxn; ++i) {
		cnt[i] += f[i].size();
		for (int v : f[i]) cnt[v]--;
		while (cnt[front] == 0) front++;
		if (front == i) dp[i] = 1e9;
		else dp[i] = dp[front] + 1;
	}
	while (q--) {
		int n;
		cin >> n;
		if (dp[n] > n) cout << "oo\n";
		else cout << dp[n] << '\n';
	}
	return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...