Submission #698726

# Submission time Handle Problem Language Result Execution time Memory
698726 2023-02-14T08:46:40 Z vjudge1 New Home (APIO18_new_home) C++17
0 / 100
5000 ms 101516 KB
#include <bits/stdc++.h>
using namespace std;

#define int long long
#define endl '\n'

const int M = 3e5+5, MOD = 1e9+7;
struct event {int x, t, y, a;};
bool operator<(event a, event b) {if (a.y == b.y) return a.a < b.a; return a.y < b.y;};

int k, size, ans[M];
multiset<int> st[M];

int query(int ind) {
    int mx = 0;
    for (int i = 1; i <= k; i++) {
        int mn = INT_MAX;
        auto it = st[k].lower_bound(ind);
        if (it != st[k].end()) mn = min(mn, *it - ind);
        if (it != st[k].begin()) mn = min(mn, ind - *prev(it));
        if (st[k].size() == 0) return -1;
        mx = max(mx, mn);
    } return mx;
}

signed main() {
    cin.tie(0)->sync_with_stdio(0);

    int n, q;
    cin >> n >> k >> q;

    multiset<event> timeline;
    for(int i = 1; i <= n; i++) {
        int x, t, a, b;
        cin >> x >> t >> a >> b;

        timeline.insert({x, t, a, 1});
        timeline.insert({x, t, b+1, 0});
    }

    for (int i = 1; i <= q; i++) {
        int x, a;
        cin >> x >> a;
        timeline.insert({x, i, a, 2});
    }

    for (auto [x, color, y, type]:timeline) {
        // cout << type << ": " << x << ' ' << color << ' ' << y << endl;
        if (type == 1) {
            st[color].insert(x);
        } else if (type == 0) {
            st[color].erase(st[color].find(x));
        } else {
            ans[color] = query(x);
        }
    }

    for (int i = 1; i <= q; i++) cout << ans[i] << endl;

    return 0;
}
/*
1 2 3 4 5 6 7 8
1 2 2 4 5 6 7 8
3
SRS RR SRRRS RRRR
4 2 4
3 1 1 10
9 2 2 4
7 2 5 7
4 1 8 10
5 3
5 6
5 9
1 10
------
2 1 3
1 1 1 4
1 1 2 6
1 3
1 5
1 7
------
1 1 1
100000000 1 1 1
1 1
------
*/
# Verdict Execution time Memory Grader output
1 Correct 7 ms 14420 KB Output is correct
2 Incorrect 9 ms 14392 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 7 ms 14420 KB Output is correct
2 Incorrect 9 ms 14392 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 5042 ms 101516 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 5055 ms 101340 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 7 ms 14420 KB Output is correct
2 Incorrect 9 ms 14392 KB Output isn't correct
3 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 7 ms 14420 KB Output is correct
2 Incorrect 9 ms 14392 KB Output isn't correct
3 Halted 0 ms 0 KB -