結果
問題 | 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;}}}