結果
問題 | No.1234 典型RMQ |
ユーザー |
![]() |
提出日時 | 2020-10-06 10:36:03 |
言語 | cLay (20241019-1) |
結果 |
TLE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 718 bytes |
コンパイル時間 | 2,355 ms |
コンパイル使用メモリ | 179,296 KB |
実行使用メモリ | 18,116 KB |
最終ジャッジ日時 | 2024-07-05 14:27:01 |
合計ジャッジ時間 | 17,037 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | -- * 3 |
other | AC * 20 TLE * 1 -- * 6 |
ソースコード
// 座標圧縮してあとは愚直 int cc(int n, int arr[], ll values[], void *mem = wmem){ int i; int k = 0; int j; pair<int,int>*r; walloc1d(&r, n, &mem); for(i=(0);i<(n);i++){ r[i].first = arr[i]; r[i].second = i; } sort(r, r+n); j=r[0].first; for(i=(0);i<(n);i++){ if(i && r[i].first != j){ values[k]=values[j]; while(++j<r[i].first){ values[k]<?=values[j]; } k++; } arr[r[i].second] = k; } return k+1; } int n,q,k[1d5],lr[2d5],c[1d5]; ll a[1d5]; { rd(n,a(n),q); rep(i,q){ rd(k[i],lr[2i]--,lr[2i+1],c[i]); } cc(2q,lr,a); rep(i,q){ if(k[i]==1){ REP(j,lr[2i],lr[2i+1]) a[j]+=c[i]; }else{ ll z=ll_inf; REP(j,lr[2i],lr[2i+1]) z<?=a[j]; wt(z); } } }