답안 #217721

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
217721 2020-03-30T13:57:23 Z Vimmer 새 집 (APIO18_new_home) C++17
0 / 100
350 ms 26688 KB
#include <bits/stdc++.h>

#define F first
#define S second
#define sz(x) int(x.size())
#define pb push_back
#define N 100005
#define M ll(998244353)

using namespace std;

typedef long double ld;
typedef long long ll;
typedef short int si;


vector <pair <pair <pair <int, int>, int>, int> > sost;

set <int> se[410];

map <pair <int, int>, int > mp;

int main()
{
    ios_base::sync_with_stdio(0); istream::sync_with_stdio(0); cin.tie(0); cout.tie(0);

    int n, k, q;

    cin >> n >> k >> q;

    for (int i = 0; i < n; i++)
    {
        int x, t, l, r;

        cin >> x >> t >> l >> r;

        sost.pb({{{l, x}, t}, i});

        sost.pb({{{r, x}, -t}, i});
    }

    vector <pair <pair <int, int>, int>  > gr; gr.resize(q);

    for (int i = 0; i < q; i++) {cin >> gr[i].F.S >> gr[i].F.F; gr[i].S = i;}

    sort(sost.begin(), sost.end());

    sort(gr.begin(), gr.end());

    int ans[q];

    int j = 0;

    for (auto it : gr)
    {
        int nm = it.S, x = it.F.S, tr = it.F.F;

        while (j < n + n && sost[j].F.F.F <= tr)
        {
            int tp = abs(sost[j].F.S);

            if (sost[j].F.S > 0) {mp[{tp, sost[j].F.F.S}]++; if (mp[{tp, sost[j].F.F.S}] == 1) se[tp].insert(sost[j].F.F.S);}
               else  {mp[{tp, sost[j].F.F.S}]--; if (mp[{tp, sost[j].F.F.S}] == 0) se[tp].erase(sost[j].F.F.S);}

            j++;
        }

        bool f = 1;

        int mx = 0;

        for (int i = 1; i <= k; i++)
        {
            if (sz(se[i]) == 0) {f = 0; break;}

            auto it = se[i].upper_bound(x);

            int mn = 1e9;

            if (it != se[i].end()) mn = min(mn, abs(*it - x));

            if (it != se[i].begin()) {it--; mn = min(mn, abs(*it - x)); }

            mx = max(mx, mn);
        }

        if (!f) ans[nm] = -1; else ans[nm] = mx;
    }

    for (int i = 0; i < q; i++) cout << ans[i] << endl;
}
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 350 ms 26688 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Runtime error 334 ms 26688 KB Execution killed with signal 11 (could be triggered by violating memory limits)
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Incorrect 5 ms 384 KB Output isn't correct
2 Halted 0 ms 0 KB -