제출 #264873

#제출 시각아이디문제언어결과실행 시간메모리
264873extraterrestrialNew Home (APIO18_new_home)C++14
12 / 100
5059 ms124108 KiB
#pragma GCC optimize("Ofast") #include <bits/stdc++.h> typedef long long ll; typedef long double ld; using namespace std; #define F first #define S second #define pb push_back #define all(x) (x).begin(), (x).end() #define SZ(x) (int)(x).size() //#define int ll const int N = 3e5 + 10; vector<pair<int, int>> add[N], del[N], que[N]; int ans[N]; multiset<int> have[N]; signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n, k, q; cin >> n >> k >> q; vector<int> x(n), type(n), l(n), r(n), interesting; for (int i = 0; i < n; i++) { cin >> x[i] >> type[i] >> l[i] >> r[i]; interesting.pb(l[i]); interesting.pb(r[i]); type[i]--; } vector<int> pos(q), tt(q); for (int i = 0; i < q; i++) { cin >> pos[i] >> tt[i]; interesting.pb(tt[i]); } sort(all(interesting)); interesting.resize(unique(all(interesting)) - interesting.begin()); for (int i = 0; i < n; i++) { l[i] = upper_bound(all(interesting), l[i]) - interesting.begin(); r[i] = upper_bound(all(interesting), r[i]) - interesting.begin(); } for (int i = 0; i < q; i++) { tt[i] = upper_bound(all(interesting), tt[i]) - interesting.begin(); } int max_time = SZ(interesting); for (int i = 0; i < n; i++) { add[l[i]].pb({x[i], type[i]}); del[r[i]].pb({x[i], type[i]}); } for (int i = 0; i < q; i++) { que[tt[i]].pb({pos[i], i}); } for (int cur_time = 1; cur_time <= max_time; cur_time++) { for (auto it : add[cur_time]) { have[it.S].insert(it.F); } for (auto it : que[cur_time]) { for (int i = 0; i < k; i++) { int rez = 1e9; auto kek = have[i].upper_bound(it.F); if (kek != have[i].end()) { rez = min(rez, *kek - it.F); } if (kek != have[i].begin()) { kek--; rez = min(rez, it.F - *kek); } ans[it.S] = max(ans[it.S], rez); } } for (auto it : del[cur_time]) { have[it.S].erase(have[it.S].find(it.F)); } } for (int i = 0; i < q; i++) { if (ans[i] == 1e9) { cout << -1 << '\n'; } else { cout << ans[i] << '\n'; } } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...