제출 #46995

#제출 시각아이디문제언어결과실행 시간메모리
46995rsalescBrunhilda’s Birthday (BOI13_brunhilda)C++14
17.78 / 100
465 ms139300 KiB
#include <bits/stdc++.h>
using namespace std;

const int P = 1e6+10;
const int M = 1e5+10;
int mx;
vector<int> q[P];
int dp[P];

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	int m, Q;
	cin >> m >> Q;

	for(int i = 0; i < m; i++) {
		int x;
		cin >> x;
		q[0].push_back(x);
	}

	for(int i = 1; i < P; i++) dp[i] = 1e9+10;

	for(int i = 0; i < P; i++) {
		for(int p : q[i]) {
			int nxt = i+p;
			int til = min(nxt, P);

			if(mx > i)
			for(int j = mx; j < til; j++) {
				dp[j] = dp[i]+1;
			}

			mx = max(mx, nxt);
			if(nxt < P) q[nxt].push_back(p);
		}
		q[i].clear();
	}

	for(int i = 0; i < Q; i++) {
		int x;
		cin >> x;
		if(dp[x] > 1e9) cout << "oo" << endl;
		else cout << dp[x] << endl;
	}
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...