結果
問題 |
No.1705 Mode of long array
|
ユーザー |
![]() |
提出日時 | 2022-11-02 12:12:39 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 267 ms / 3,000 ms |
コード長 | 777 bytes |
コンパイル時間 | 4,119 ms |
コンパイル使用メモリ | 254,676 KB |
最終ジャッジ日時 | 2025-02-08 16:52:14 |
ジャッジサーバーID (参考情報) |
judge1 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 51 |
ソースコード
#include <bits/stdc++.h> #include <atcoder/all> using namespace std; using namespace atcoder; struct S { long long mx; int argmx; }; S op(S l, S r) { if( l.mx > r.mx ) return l; else return r; } S e() { return S{0, 0}; } int main() { long long N; int M; cin >> N >> M; vector<S> A(M); for( int i = 0; i < M; i++ ) { long long val; cin >> val; A[i] = S{val, i}; } int Q; cin >> Q; segtree<S, op, e> st(A); for( int q = 0; q < Q; q++ ) { int T, X; long long Y; cin >> T >> X >> Y; X--; if( T == 1 ) { S s = st.get(X); st.set(X, S{s.mx+Y, X}); }else if( T == 2 ) { S s = st.get(X); st.set(X, S{s.mx-Y, X}); }else { S s = st.all_prod(); cout << s.argmx+1 << endl; } } }