답안 #558891

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
558891 2022-05-08T23:21:42 Z Olympia Brunhilda’s Birthday (BOI13_brunhilda) C++17
15.5556 / 100
59 ms 13556 KB
#include <bits/stdc++.h>
using namespace std;
template<class T> struct Seg { // comb(ID,b) = b
	const T ID = 1e9; T comb(T a, T b) { return min(a,b); }
	int n; vector<T> seg;
	void init(int _n) { n = _n; seg.assign(2*n,ID); }
	void pull(int p) { seg[p] = comb(seg[2*p],seg[2*p+1]); }
	void upd(int p, T val) { // set val at position p
		seg[p += n] = val; for (p /= 2; p; p /= 2) pull(p); }
	T query(int l, int r) {	// min on interval [l, r]
		T ra = ID, rb = ID;
		for (l += n, r += n+1; l < r; l /= 2, r /= 2) {
			if (l&1) ra = comb(ra,seg[l++]);
			if (r&1) rb = comb(seg[--r],rb);
		}
		return comb(ra,rb);
	}
};
int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int M, Q; cin >> M >> Q;
    vector<int> p(M);
    Seg<int> st;
    st.init(M + 1);
    map<int,int> primes;
    for (int i = 0; i < M; i++) {
        cin >> p[i];
        st.upd(i, 0);
    }
    sort(p.begin(), p.end());
    for (int i = 0; i < M; i++) {
        primes[p[i]] = i;
        st.upd(i, 0);
    } 
    int mx = 10000;
    int res[mx];
    bool isPrime[mx];
    for (int i = 0; i < mx; i++) {
        isPrime[i] = true;
    }
    isPrime[0] = isPrime[1] = false;
    vector<int> fact[mx];
    for (int i = 2; i < mx; i++) {
        if (isPrime[i]) {
            for (int j = 2 * i; j < mx; j += i) {
                isPrime[j] = false;
                if (primes.count(i)) fact[j].push_back(primes[i]);
            }
            if (primes.count(i)) fact[i].push_back(primes[i]);
        }
    }
    for (int i = 1; i < mx; i++) {
        int ans = 1e9;
        vector<int> invalid;
        invalid.push_back(-1);
        for (int j: fact[i]) {
            invalid.push_back(j);
        }
        invalid.push_back(p.size());
        for (int j = 0; j < (int)invalid.size() - 1; j++) {
            if (invalid[j] + 1 <= invalid[j + 1] - 1) {
                ans = min(ans, st.query(invalid[j] + 1, invalid[j + 1] - 1) + 1);
            }
        }
        for (int j: invalid) {
            if (j >= 0 && j < (int)p.size()) {
                st.upd(j, ans);
            }
        }
        res[i] = ans;
    }
    while (Q--) {
        int x;
        cin >> x;
        if (res[x] == (int)1e9) {
            cout << "oo\n";
        } else {
            cout << res[x] << '\n';
        }
    }
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 596 KB Output is correct
2 Correct 3 ms 724 KB Output is correct
3 Correct 2 ms 724 KB Output is correct
4 Incorrect 3 ms 596 KB Output isn't correct
5 Correct 2 ms 596 KB Output is correct
6 Correct 1 ms 596 KB Output is correct
7 Correct 2 ms 724 KB Output is correct
8 Correct 2 ms 724 KB Output is correct
9 Correct 3 ms 852 KB Output is correct
10 Correct 3 ms 852 KB Output is correct
11 Incorrect 3 ms 724 KB Output isn't correct
12 Correct 1 ms 596 KB Output is correct
13 Correct 6 ms 852 KB Output is correct
14 Correct 8 ms 960 KB Output is correct
15 Correct 3 ms 724 KB Output is correct
16 Correct 2 ms 724 KB Output is correct
17 Incorrect 3 ms 724 KB Output isn't correct
18 Incorrect 4 ms 596 KB Output isn't correct
# 결과 실행 시간 메모리 Grader output
1 Runtime error 6 ms 2492 KB Execution killed with signal 11
2 Runtime error 37 ms 11940 KB Execution killed with signal 11
3 Runtime error 32 ms 9940 KB Execution killed with signal 11
4 Runtime error 3 ms 1620 KB Execution killed with signal 11
5 Runtime error 24 ms 7644 KB Execution killed with signal 11
6 Runtime error 4 ms 1492 KB Execution killed with signal 11
7 Runtime error 7 ms 2504 KB Execution killed with signal 11
8 Runtime error 5 ms 1364 KB Execution killed with signal 11
9 Runtime error 33 ms 10056 KB Execution killed with signal 11
10 Runtime error 36 ms 9924 KB Execution killed with signal 11
11 Runtime error 22 ms 6440 KB Execution killed with signal 11
12 Runtime error 4 ms 1748 KB Execution killed with signal 11
13 Runtime error 3 ms 1492 KB Execution killed with signal 11
14 Runtime error 4 ms 1620 KB Execution killed with signal 11
15 Runtime error 20 ms 6584 KB Execution killed with signal 11
16 Runtime error 37 ms 11904 KB Execution killed with signal 11
17 Runtime error 8 ms 1948 KB Execution killed with signal 11
18 Runtime error 49 ms 13464 KB Execution killed with signal 11
# 결과 실행 시간 메모리 Grader output
1 Runtime error 34 ms 7540 KB Execution killed with signal 11
2 Runtime error 26 ms 7816 KB Execution killed with signal 11
3 Runtime error 24 ms 7572 KB Execution killed with signal 11
4 Runtime error 5 ms 1876 KB Execution killed with signal 11
5 Runtime error 44 ms 12824 KB Execution killed with signal 11
6 Runtime error 7 ms 2516 KB Execution killed with signal 11
7 Runtime error 46 ms 13216 KB Execution killed with signal 11
8 Runtime error 26 ms 7476 KB Execution killed with signal 11
9 Runtime error 24 ms 7508 KB Execution killed with signal 11
10 Runtime error 6 ms 2132 KB Execution killed with signal 11
11 Runtime error 5 ms 1876 KB Execution killed with signal 11
12 Runtime error 7 ms 2260 KB Execution killed with signal 11
13 Runtime error 16 ms 5244 KB Execution killed with signal 11
14 Runtime error 4 ms 1492 KB Execution killed with signal 11
15 Runtime error 8 ms 2260 KB Execution killed with signal 11
16 Runtime error 9 ms 2480 KB Execution killed with signal 11
17 Runtime error 23 ms 6844 KB Execution killed with signal 11
18 Runtime error 33 ms 7900 KB Execution killed with signal 11
19 Runtime error 5 ms 1876 KB Execution killed with signal 11
20 Runtime error 36 ms 7500 KB Execution killed with signal 11
21 Runtime error 4 ms 1512 KB Execution killed with signal 11
22 Runtime error 43 ms 13536 KB Execution killed with signal 11
23 Runtime error 13 ms 4644 KB Execution killed with signal 11
24 Runtime error 3 ms 1236 KB Execution killed with signal 11
25 Runtime error 5 ms 1876 KB Execution killed with signal 11
26 Runtime error 5 ms 1876 KB Execution killed with signal 11
27 Runtime error 59 ms 13556 KB Execution killed with signal 11
28 Runtime error 3 ms 1364 KB Execution killed with signal 11
29 Runtime error 44 ms 13408 KB Execution killed with signal 11
30 Runtime error 33 ms 9804 KB Execution killed with signal 11
31 Runtime error 4 ms 1736 KB Execution killed with signal 11
32 Runtime error 4 ms 1620 KB Execution killed with signal 11
33 Runtime error 3 ms 1108 KB Execution killed with signal 11
34 Runtime error 47 ms 13276 KB Execution killed with signal 11
35 Runtime error 4 ms 1364 KB Execution killed with signal 11
36 Runtime error 45 ms 12336 KB Execution killed with signal 11
37 Runtime error 41 ms 12748 KB Execution killed with signal 11
38 Runtime error 8 ms 2516 KB Execution killed with signal 11
39 Runtime error 3 ms 1364 KB Execution killed with signal 11
40 Runtime error 8 ms 2704 KB Execution killed with signal 11
41 Runtime error 42 ms 13404 KB Execution killed with signal 11
42 Runtime error 9 ms 2004 KB Execution killed with signal 11