제출 #155766

#제출 시각아이디문제언어결과실행 시간메모리
155766shuvi_dolaBrunhilda’s Birthday (BOI13_brunhilda)C++14
100 / 100
438 ms79340 KiB
#include <bits/stdc++.h>
using namespace std;
const int M = 1e5 + 4;
const int N = 1e7 + 3;
const int inf = 1e9;
int p[M], dp[N], d[N];
int m, q;
int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	cin >> m >> q;
	for(int i = 1; i <= m; i++)
	{
		cin >> p[i];
	}

	for(int i = 1; i <= m; i++)
	{
		int j = p[i];
		while(j < N)
		{
			d[j] = max(d[j], p[i]);
			j += p[i];
			
		}
	}
	d[0] = p[m];
	int j = 0;
	for(int i = 1; i < N; i++)
	{
		while(j + d[j] - 1 < i)
		{
			j++;
		}
		// if(i <= 5)
			// cout << i << ' ' << j << '\n';
		if(j >= i)
			dp[i] = inf;
		dp[i] = dp[j] + 1;

	}
	while(q--)
	{
		int x;
		cin >> x;
		if(dp[x] >= inf)
			cout << "oo\n";
		else
			cout << dp[x] << '\n';
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...