답안 #558892

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
558892 2022-05-08T23:37:46 Z Olympia Brunhilda’s Birthday (BOI13_brunhilda) C++17
0 / 100
43 ms 12372 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 = 10;
    int res[mx];
    bool isPrime[mx];
    for (int i = 0; i < mx; i++) {
        isPrime[i] = true;
    }
    isPrime[0] = isPrime[1] = false;
    int lpf[mx];
    for (int i = 0; i < mx; i++) {
        lpf[i] = -1;
    }
    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)) lpf[j] = primes[i];
            }
            if (primes.count(i)) lpf[i] = primes[i];
        }
    }
    for (int i = 1; i < mx; i++) {
        int ans = 1e9;
        if (lpf[i] == -1) {
            ans = st.query(0, M - 1) + 1;
        } else {
            vector<int> invalid;
            invalid.push_back(-1);
            int x = i;
            while (lpf[x] != -1) {
                invalid.push_back(lpf[x]);
                int a = p[lpf[x]];
                while (x % a == 0) x /= a;
            }
            sort(invalid.begin(), invalid.end());
            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 Runtime error 1 ms 468 KB Execution killed with signal 11
2 Runtime error 1 ms 468 KB Execution killed with signal 11
3 Runtime error 1 ms 340 KB Execution killed with signal 11
4 Runtime error 1 ms 468 KB Execution killed with signal 11
5 Incorrect 0 ms 212 KB Output isn't correct
6 Runtime error 1 ms 340 KB Execution killed with signal 11
7 Runtime error 1 ms 340 KB Execution killed with signal 11
8 Runtime error 1 ms 340 KB Execution killed with signal 11
9 Incorrect 0 ms 212 KB Output isn't correct
10 Incorrect 1 ms 212 KB Output isn't correct
11 Runtime error 1 ms 340 KB Execution killed with signal 11
12 Runtime error 1 ms 468 KB Execution killed with signal 11
13 Runtime error 1 ms 468 KB Execution killed with signal 11
14 Runtime error 1 ms 468 KB Execution killed with signal 11
15 Runtime error 1 ms 340 KB Execution killed with signal 11
16 Runtime error 1 ms 468 KB Execution killed with signal 11
17 Runtime error 1 ms 468 KB Execution killed with signal 11
18 Runtime error 1 ms 468 KB Execution killed with signal 11
# 결과 실행 시간 메모리 Grader output
1 Runtime error 5 ms 1876 KB Execution killed with signal 11
2 Runtime error 37 ms 11224 KB Execution killed with signal 11
3 Runtime error 27 ms 8788 KB Execution killed with signal 11
4 Runtime error 2 ms 724 KB Execution killed with signal 11
5 Runtime error 20 ms 6576 KB Execution killed with signal 11
6 Runtime error 1 ms 596 KB Execution killed with signal 11
7 Runtime error 5 ms 1876 KB Execution killed with signal 11
8 Runtime error 1 ms 596 KB Execution killed with signal 11
9 Runtime error 30 ms 8916 KB Execution killed with signal 11
10 Runtime error 28 ms 8696 KB Execution killed with signal 11
11 Runtime error 15 ms 5204 KB Execution killed with signal 11
12 Runtime error 1 ms 596 KB Execution killed with signal 11
13 Runtime error 2 ms 724 KB Execution killed with signal 11
14 Runtime error 2 ms 724 KB Execution killed with signal 11
15 Runtime error 15 ms 5428 KB Execution killed with signal 11
16 Runtime error 39 ms 11288 KB Execution killed with signal 11
17 Runtime error 2 ms 740 KB Execution killed with signal 11
18 Runtime error 40 ms 12316 KB Execution killed with signal 11
# 결과 실행 시간 메모리 Grader output
1 Runtime error 18 ms 6356 KB Execution killed with signal 11
2 Runtime error 20 ms 6652 KB Execution killed with signal 11
3 Runtime error 19 ms 6356 KB Execution killed with signal 11
4 Runtime error 2 ms 852 KB Execution killed with signal 11
5 Runtime error 40 ms 12108 KB Execution killed with signal 11
6 Runtime error 3 ms 1364 KB Execution killed with signal 11
7 Runtime error 43 ms 12368 KB Execution killed with signal 11
8 Runtime error 19 ms 6420 KB Execution killed with signal 11
9 Runtime error 19 ms 6428 KB Execution killed with signal 11
10 Runtime error 3 ms 1108 KB Execution killed with signal 11
11 Runtime error 2 ms 868 KB Execution killed with signal 11
12 Runtime error 2 ms 1108 KB Execution killed with signal 11
13 Runtime error 13 ms 3924 KB Execution killed with signal 11
14 Runtime error 1 ms 340 KB Execution killed with signal 11
15 Runtime error 2 ms 1108 KB Execution killed with signal 11
16 Runtime error 3 ms 1236 KB Execution killed with signal 11
17 Runtime error 17 ms 5724 KB Execution killed with signal 11
18 Runtime error 20 ms 6652 KB Execution killed with signal 11
19 Runtime error 2 ms 980 KB Execution killed with signal 11
20 Runtime error 19 ms 6424 KB Execution killed with signal 11
21 Runtime error 1 ms 468 KB Execution killed with signal 11
22 Runtime error 40 ms 12256 KB Execution killed with signal 11
23 Runtime error 12 ms 3924 KB Execution killed with signal 11
24 Runtime error 1 ms 596 KB Execution killed with signal 11
25 Runtime error 1 ms 724 KB Execution killed with signal 11
26 Runtime error 2 ms 852 KB Execution killed with signal 11
27 Runtime error 40 ms 12316 KB Execution killed with signal 11
28 Runtime error 1 ms 468 KB Execution killed with signal 11
29 Runtime error 40 ms 12364 KB Execution killed with signal 11
30 Runtime error 27 ms 8696 KB Execution killed with signal 11
31 Runtime error 2 ms 852 KB Execution killed with signal 11
32 Runtime error 2 ms 724 KB Execution killed with signal 11
33 Runtime error 1 ms 596 KB Execution killed with signal 11
34 Runtime error 39 ms 12372 KB Execution killed with signal 11
35 Runtime error 1 ms 596 KB Execution killed with signal 11
36 Runtime error 37 ms 11104 KB Execution killed with signal 11
37 Runtime error 40 ms 12240 KB Execution killed with signal 11
38 Runtime error 3 ms 1364 KB Execution killed with signal 11
39 Runtime error 2 ms 724 KB Execution killed with signal 11
40 Runtime error 6 ms 1492 KB Execution killed with signal 11
41 Runtime error 40 ms 12236 KB Execution killed with signal 11
42 Runtime error 2 ms 724 KB Execution killed with signal 11