답안 #318092

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
318092 2020-10-31T12:51:57 Z shivensinha4 Brunhilda’s Birthday (BOI13_brunhilda) C++17
20 / 100
5 ms 1516 KB
#include "bits/stdc++.h"
using namespace std; 
#define for_(i, s, e) for (int i = s; i < (int) e; i++)
#define for__(i, s, e) for (ll i = s; i < e; i++)
typedef long long ll;
typedef vector<int> vi;
typedef pair<int, int> ii;
#define endl '\n'
 
const int MXV = 1e4;
vi qrs[MXV+2];
int qrAns[MXV+2], spf[MXV+2], done[MXV+2];
bool inc[MXV+2];

void pre() {
	memset(spf, -1, sizeof(spf));
	for__(i, 2, MXV+1) if (spf[i] == -1) {
		spf[i] = i;
		for (ll j = i*i; j <= MXV; j += i) spf[j] = i;
	}
}
 
int main() {
	#ifdef shiven
	freopen("test.in", "r", stdin);
	#endif
	
	pre();
	
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	
	int m, q; cin >> m >> q;
	int mxp = -1;
	for_(i, 0, m)  {
		int p; cin >> p;
		inc[p] = true;
		mxp = max(mxp, p);
	}
	
	// vector<ii> last; // {val, nxt}
	// last.push_back({0, mxp});
	// int pt = 0;
	// for_(i, 1, MXV+1) {
	// 	if (pt < last.size() and last[pt].second == i) pt++;
		
	// 	if (pt < last.size()) ans[i] = ans[last[pt].first]+1;
		
	// 	for (int f = fac[i].size()-1; f >= 0; f--) {
	// 		int nxt = i+fac[i][f];
	// 		if (ans[i] and last.back().second < nxt) last.push_back({i, nxt});
	// 		if (nxt <= MXV) fac[nxt].push_back(fac[i][f]);
	// 		fac[i].pop_back();
	// 	}
	// }
	
	for_(i, 0, q) {
		int k; cin >> k;
		qrs[k].push_back(i);
	}
	
	
	int pt = 0;
	vi fac;
	vector<ii> last;
	last.push_back({0, mxp});
	for_(i, 1, MXV+1) {
		int ans = 0;
		if (pt < last.size() and last[pt].second == i) pt++;
		if (pt < last.size()) ans = last[pt].first+1;
		
		int k = i;
		while (spf[k] != -1) {
			if (inc[spf[k]] and done[spf[k]] != i) {
				done[spf[k]] = i;
				fac.push_back(spf[k]);
			}
			k /= spf[k];
		}
		
		for (int f = fac.size()-1; f >= 0; f--) {
			int nxt = i+fac[f];
			if (ans and last.back().second < nxt) last.push_back({ans, nxt});
			fac.pop_back();
		}
		
		// cout << i << ": " << ans << endl;
		for (int j: qrs[i]) qrAns[j] = ans;
	}
	
	for_(i, 0, q) {
		if (!qrAns[i]) cout << "oo";
		else cout << qrAns[i];
		cout << endl;
	}
	
 
	return 0;
}

Compilation message

brunhilda.cpp: In function 'int main()':
brunhilda.cpp:69:10: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   69 |   if (pt < last.size() and last[pt].second == i) pt++;
      |       ~~~^~~~~~~~~~~~~
brunhilda.cpp:70:10: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<std::pair<int, int> >::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   70 |   if (pt < last.size()) ans = last[pt].first+1;
      |       ~~~^~~~~~~~~~~~~
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 620 KB Output is correct
2 Correct 1 ms 640 KB Output is correct
3 Correct 1 ms 620 KB Output is correct
4 Correct 3 ms 1004 KB Output is correct
5 Correct 1 ms 620 KB Output is correct
6 Correct 1 ms 620 KB Output is correct
7 Correct 1 ms 620 KB Output is correct
8 Correct 1 ms 620 KB Output is correct
9 Correct 1 ms 620 KB Output is correct
10 Correct 2 ms 620 KB Output is correct
11 Correct 1 ms 620 KB Output is correct
12 Correct 1 ms 620 KB Output is correct
13 Correct 2 ms 748 KB Output is correct
14 Correct 4 ms 1004 KB Output is correct
15 Correct 1 ms 620 KB Output is correct
16 Correct 1 ms 620 KB Output is correct
17 Correct 3 ms 1004 KB Output is correct
18 Correct 3 ms 1004 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Runtime error 2 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Runtime error 2 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
3 Runtime error 4 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
4 Runtime error 2 ms 1132 KB Execution killed with signal 11 (could be triggered by violating memory limits)
5 Runtime error 4 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
6 Runtime error 2 ms 1132 KB Execution killed with signal 11 (could be triggered by violating memory limits)
7 Runtime error 2 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
8 Runtime error 2 ms 1132 KB Execution killed with signal 11 (could be triggered by violating memory limits)
9 Runtime error 4 ms 1388 KB Execution killed with signal 11 (could be triggered by violating memory limits)
10 Runtime error 4 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
11 Runtime error 4 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
12 Runtime error 2 ms 1132 KB Execution killed with signal 11 (could be triggered by violating memory limits)
13 Runtime error 2 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
14 Runtime error 2 ms 1132 KB Execution killed with signal 11 (could be triggered by violating memory limits)
15 Runtime error 4 ms 1388 KB Execution killed with signal 11 (could be triggered by violating memory limits)
16 Runtime error 2 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
17 Runtime error 2 ms 1132 KB Execution killed with signal 11 (could be triggered by violating memory limits)
18 Runtime error 4 ms 1516 KB Execution killed with signal 11 (could be triggered by violating memory limits)
# 결과 실행 시간 메모리 Grader output
1 Runtime error 4 ms 1388 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Runtime error 4 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
3 Runtime error 4 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
4 Runtime error 2 ms 1132 KB Execution killed with signal 11 (could be triggered by violating memory limits)
5 Runtime error 4 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
6 Runtime error 2 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
7 Runtime error 3 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
8 Runtime error 4 ms 1388 KB Execution killed with signal 11 (could be triggered by violating memory limits)
9 Runtime error 4 ms 1388 KB Execution killed with signal 11 (could be triggered by violating memory limits)
10 Runtime error 2 ms 1132 KB Execution killed with signal 11 (could be triggered by violating memory limits)
11 Runtime error 2 ms 1132 KB Execution killed with signal 11 (could be triggered by violating memory limits)
12 Runtime error 2 ms 1132 KB Execution killed with signal 11 (could be triggered by violating memory limits)
13 Runtime error 4 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
14 Runtime error 1 ms 1004 KB Execution killed with signal 11 (could be triggered by violating memory limits)
15 Runtime error 2 ms 1132 KB Execution killed with signal 11 (could be triggered by violating memory limits)
16 Runtime error 2 ms 1132 KB Execution killed with signal 11 (could be triggered by violating memory limits)
17 Runtime error 4 ms 1408 KB Execution killed with signal 11 (could be triggered by violating memory limits)
18 Runtime error 4 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
19 Runtime error 2 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
20 Runtime error 4 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
21 Runtime error 2 ms 1004 KB Execution killed with signal 11 (could be triggered by violating memory limits)
22 Runtime error 4 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
23 Runtime error 3 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
24 Runtime error 2 ms 1132 KB Execution killed with signal 11 (could be triggered by violating memory limits)
25 Runtime error 2 ms 1132 KB Execution killed with signal 11 (could be triggered by violating memory limits)
26 Runtime error 2 ms 1132 KB Execution killed with signal 11 (could be triggered by violating memory limits)
27 Runtime error 5 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
28 Runtime error 2 ms 1132 KB Execution killed with signal 11 (could be triggered by violating memory limits)
29 Runtime error 4 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
30 Runtime error 4 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
31 Runtime error 3 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
32 Runtime error 2 ms 1132 KB Execution killed with signal 11 (could be triggered by violating memory limits)
33 Runtime error 2 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
34 Runtime error 3 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
35 Runtime error 2 ms 1132 KB Execution killed with signal 11 (could be triggered by violating memory limits)
36 Runtime error 4 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
37 Runtime error 3 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
38 Runtime error 2 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
39 Runtime error 2 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
40 Runtime error 2 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
41 Runtime error 3 ms 1260 KB Execution killed with signal 11 (could be triggered by violating memory limits)
42 Runtime error 2 ms 1132 KB Execution killed with signal 11 (could be triggered by violating memory limits)