Submission #66156

#TimeUsernameProblemLanguageResultExecution timeMemory
66156MatheusLealVBrunhilda’s Birthday (BOI13_brunhilda)C++17
20 / 100
1102 ms232864 KiB
#include <bits/stdc++.h>
#define N 100050
using namespace std;

int n, q, p[N], dp[10000005];

int solve(int x)
{
	if(!x) return 0;

	if(dp[x] != -1) return dp[x];

	int ans = 2000000000;

	for(int i = 1; i <= n; i++)
	{
		if(x % p[i] == 0) continue;

		ans = min(ans, solve(x - (x % p[i])) + 1);
	}

	return dp[x] = ans;
}

int main()
{
	ios::sync_with_stdio(false); cin.tie(0);

	cin>>n>>q;

	for(int i = 1; i <= n; i++) cin>>p[i];

	memset(dp, -1, sizeof dp);

	while(q--)
	{
		int x;

		cin>>x;

		int s = solve(x);

		if(s >= 2000000000) cout<<"oo\n";

		else cout<<s<<"\n";
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...