結果
| 問題 |
No.2650 [Cherry 6th Tune *] セイジャク
|
| コンテスト | |
| ユーザー |
eve__fuyuki
|
| 提出日時 | 2024-04-02 00:31:57 |
| 言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
AC
|
| 実行時間 | 84 ms / 2,500 ms |
| コード長 | 1,172 bytes |
| コンパイル時間 | 2,716 ms |
| コンパイル使用メモリ | 210,444 KB |
| 最終ジャッジ日時 | 2025-02-20 19:27:53 |
|
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 31 |
ソースコード
#include <bits/stdc++.h>
using namespace std;
void fast_io() {
ios::sync_with_stdio(false);
std::cin.tie(nullptr);
}
int main() {
fast_io();
int n, a;
cin >> n >> a;
vector<int> x(n);
for (int i = 0; i < n; i++) {
cin >> x[i];
}
int t;
cin >> t;
vector<tuple<int, int, int>> lri(t);
for (int i = 0; i < t; i++) {
int l, r;
cin >> l >> r;
lri[i] = make_tuple(l, r, i + 1);
}
sort(lri.begin(), lri.end());
vector<int> ans(n);
vector<int> idx(n);
iota(idx.begin(), idx.end(), 0);
sort(idx.begin(), idx.end(), [&](int i, int j) { return x[i] < x[j]; });
using pii = pair<int, int>;
priority_queue<pii> pq;
int j = 0;
for (int i : idx) {
while (j < t && get<0>(lri[j]) <= x[i]) {
pq.emplace(get<2>(lri[j]), get<1>(lri[j]));
j++;
}
while (!pq.empty() && pq.top().second < x[i]) {
pq.pop();
}
if (!pq.empty()) {
ans[i] = pq.top().first;
} else {
ans[i] = -1;
}
}
for (int i = 0; i < n; i++) {
cout << ans[i] << "\n";
}
}
eve__fuyuki