結果
問題 | No.2650 [Cherry 6th Tune *] セイジャク |
ユーザー |
![]() |
提出日時 | 2024-02-23 22:12:20 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 381 ms / 2,500 ms |
コード長 | 1,082 bytes |
コンパイル時間 | 2,611 ms |
コンパイル使用メモリ | 211,440 KB |
最終ジャッジ日時 | 2025-02-19 20:00:26 |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 31 |
ソースコード
#include <bits/stdc++.h>using namespace std;int main(){long long n,A,t,a,b;cin >> n >> A;vector<long long>iti(n);vector<pair<long long,long long>>iti2(n);for(int i=0;i<n;i++)cin >> iti[i];for(int i=0;i<n;i++)iti2[i].first=iti[i],iti2[i].second=i;sort(iti2.begin(),iti2.end());vector<long long>ans(n,-1);vector<pair<long long,long long>>start;vector<pair<long long,long long>>goal;cin >> t;for(int q=0;q<t;q++){cin >> a >> b;start.push_back(make_pair(a,q+1));goal.push_back(make_pair(b+1,q+1));}int x=0,y=0;sort(start.begin(),start.end());sort(goal.begin(),goal.end());set<long long>st;priority_queue<long long>prq;for(int i=0;i<n;i++){while(x<t && start[x].first<=iti2[i].first){prq.push(start[x].second);x++;}while(y<t && goal[y].first<=iti2[i].first){st.insert(goal[y].second);y++;}while(prq.size()>0 && st.count(prq.top())>0)prq.pop();if(prq.size()>0)ans[iti2[i].second]=prq.top();}for(int i=0;i<n;i++)cout << ans[i] << endl;return 0;}