답안 #1055879

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
1055879 2024-08-13T06:15:17 Z TAhmed33 The Potion of Great Power (CEOI20_potion) C++17
17 / 100
3000 ms 19468 KB
#include <bits/stdc++.h>
using namespace std;
#pragma GCC optimize ("Ofast")
//#include "grader.cpp"
const int MAXN = 1e5 + 25;
const int B = 300;
int n, d, h[MAXN];
void init(int N, int D, int H[]) {
    n = N; d = D;
    for (int i = 0; i < n; i++) {
        h[i] = H[i];
    }
}
int u, a[MAXN], b[MAXN];
vector <int> ii[MAXN];
vector <pair <int, vector <int>>> ls[MAXN];
int cnt[MAXN];
void curseChanges(int U, int A[], int BB[]) {
    u = U;
    for (int i = 0; i < u; i++) {
        a[i] = A[i]; b[i] = BB[i];
    }
    for (int i = 0; i < n; i++) {
        ls[i].push_back({-1, {}});
    }
    vector <int> adj2[n];
    for (int i = 0; i < u; i++) {
        cnt[a[i]]++; cnt[b[i]]++;
        ii[a[i]].push_back(i);
        ii[b[i]].push_back(i);
        adj2[a[i]].push_back(b[i]);
        adj2[b[i]].push_back(a[i]);
        if (cnt[a[i]] % B == 0) {
            ls[a[i]].push_back({i, adj2[a[i]]});
        }
        if (cnt[b[i]] % B == 0) {
            ls[b[i]].push_back({i, adj2[b[i]]});
        }
    }
}
const int inf = 1e9;
set <int> get (int x, int y) {
    set <int> cur;
    for (int i = 0; i < y; i++) {
        if (a[i] == x) {
            if (cur.count(b[i])) {
                cur.erase(b[i]);
            } else {
                cur.insert(b[i]);
            }
        }
        if (b[i] == x) {
            if (cur.count(a[i])) {
                cur.erase(a[i]);
            } else {
                cur.insert(a[i]);
            }
        }
    }
    set <int> dd;
    for (auto i : cur) {
        dd.insert(h[i]);
    }
    return dd;
}
int question (int x, int y, int v) {
    auto xx = get(x, v), yy = get(y, v);
    int mn = inf;
    for (auto i : xx) {
        auto k = yy.lower_bound(i);
        if (k != yy.end()) {
            mn = min(mn, abs(i - *k));
        }
        if (k != yy.begin()) {
            k--;
            mn = min(mn, abs(i - *k));
        }
    }
    return mn;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 4952 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Correct 3 ms 5208 KB Output is correct
2 Correct 3 ms 5208 KB Output is correct
3 Correct 3 ms 5208 KB Output is correct
4 Correct 14 ms 13708 KB Output is correct
# 결과 실행 시간 메모리 Grader output
1 Incorrect 109 ms 19468 KB Incorrect
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 85 ms 18132 KB Incorrect
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 320 ms 6488 KB Output is correct
2 Correct 537 ms 6232 KB Output is correct
3 Correct 2159 ms 6232 KB Output is correct
4 Execution timed out 3087 ms 6488 KB Time limit exceeded
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 2 ms 4952 KB Output is correct
2 Correct 3 ms 5208 KB Output is correct
3 Correct 3 ms 5208 KB Output is correct
4 Correct 3 ms 5208 KB Output is correct
5 Correct 14 ms 13708 KB Output is correct
6 Incorrect 109 ms 19468 KB Incorrect
7 Halted 0 ms 0 KB -