結果
問題 |
No.875 Range Mindex Query
|
ユーザー |
![]() |
提出日時 | 2025-10-03 18:56:29 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 287 ms / 2,000 ms |
コード長 | 768 bytes |
コンパイル時間 | 6,451 ms |
コンパイル使用メモリ | 335,244 KB |
実行使用メモリ | 7,716 KB |
最終ジャッジ日時 | 2025-10-03 18:56:48 |
合計ジャッジ時間 | 10,780 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 1 |
other | AC * 18 |
ソースコード
#include<bits/stdc++.h> #include<atcoder/all> using namespace std; using P = pair<int,int>; int main() { int N, Q; cin >> N >> Q; vector<P> A(N); for (int i=0;i<N;i++) { cin >> A[i].first; A[i].second = i; } atcoder::segtree< P, [](P a, P b) { return min(a, b); }, []() { return make_pair((int)1e9, -1); } > seg(A); int t, l, r; while(Q--) { cin >> t >> l >> r; l--; r--; if (t==1) { auto lv = seg.get(l); lv.second = r; auto rv = seg.get(r); rv.second = l; seg.set(l, rv); seg.set(r, lv); } else { cout << seg.prod(l, r+1).second+1 << endl; } } }