結果
問題 |
No.3198 Monotonic Query
|
ユーザー |
|
提出日時 | 2025-07-11 21:45:12 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,477 bytes |
コンパイル時間 | 1,702 ms |
コンパイル使用メモリ | 195,632 KB |
実行使用メモリ | 7,844 KB |
最終ジャッジ日時 | 2025-07-11 21:45:30 |
合計ジャッジ時間 | 7,103 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 3 WA * 18 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define ll long long // #define rep(i,n) for(int i=0;i<(int)n;i++) #define rep(i,r) for(ll i=0;i<(ll)r;i++) #define vi vector<int> #define vl vector<ll> #define vd vector<double> #define vb vector<bool> #define vs vector<string> #define vc vector<char> #define ull unsigned long long #define chmax(a,b) a=max(a,b) #define chmin(a,b) a=min(a,b) // ll inf=(1ll<<62); // ll rui(ll a,ll b){ // if(b==0)return 1; // if(b%2==1) return a*rui(a*a,b/2); // return rui(a*a,b/2); // } // ll const mod=998244353ll; // ll modrui(ll a,ll b){ // if(b==0)return 1; // if(b%2==1) return a%mod*modrui(a%mod*a%mod,b/2)%mod; // return modrui(a%mod*a%mod,b/2)%mod; // } // ll inv(ll x){ // return modrui(x,mod-2); // } ll len=2ll<<17,sz=0; vl seg(len*2,0); void update(ll p,ll x){ p+=len; seg[p]=x; while(p>1){ p/=2; seg[p]=max(seg[p*2],seg[p*2+1]); } sz++; } ll get_max(ll l,ll r,ll sl=0,ll sr=len,ll k=1){ if(r <= sl || sr <= l)return 0; if(l <= sl && sr <= r)return seg[k]; ll sm=(sl+sr)/2; ll lmax=get_max(l,r,sl,sm,k*2),rmax=get_max(l,r,sm,sr,k*2+1); return max(lmax,rmax); } void solve(){ ll q,op,x;cin >> q; rep(i,q){ cin >> op >> x; if(op==1){ update(sz,x); } else{ cout << get_max(0,sz) << endl; } } } int main(){ ll t=1; // cin >> t; while(t--)solve(); }