結果
問題 | No.2809 Sort Query |
ユーザー | highlighter |
提出日時 | 2024-04-23 00:25:58 |
言語 | C++23 (gcc 12.3.0 + boost 1.83.0) |
結果 |
TLE
(最新)
AC
(最初)
|
実行時間 | - |
コード長 | 1,272 bytes |
コンパイル時間 | 6,247 ms |
コンパイル使用メモリ | 338,064 KB |
実行使用メモリ | 30,876 KB |
最終ジャッジ日時 | 2024-07-12 21:00:45 |
合計ジャッジ時間 | 15,826 ms |
ジャッジサーバーID (参考情報) |
judge1 / judge5 |
(要ログイン)
テストケース
テストケース表示入力 | 結果 | 実行時間 実行使用メモリ |
---|---|---|
testcase_00 | AC | 2 ms
13,756 KB |
testcase_01 | TLE | - |
testcase_02 | -- | - |
testcase_03 | -- | - |
testcase_04 | -- | - |
testcase_05 | -- | - |
testcase_06 | -- | - |
testcase_07 | -- | - |
testcase_08 | -- | - |
testcase_09 | -- | - |
testcase_10 | -- | - |
testcase_11 | -- | - |
testcase_12 | -- | - |
testcase_13 | -- | - |
testcase_14 | -- | - |
testcase_15 | -- | - |
testcase_16 | -- | - |
testcase_17 | -- | - |
testcase_18 | -- | - |
testcase_19 | -- | - |
testcase_20 | -- | - |
testcase_21 | -- | - |
testcase_22 | -- | - |
testcase_23 | -- | - |
testcase_24 | -- | - |
testcase_25 | -- | - |
testcase_26 | -- | - |
testcase_27 | -- | - |
testcase_28 | -- | - |
testcase_29 | -- | - |
testcase_30 | -- | - |
testcase_31 | -- | - |
testcase_32 | -- | - |
testcase_33 | -- | - |
testcase_34 | -- | - |
testcase_35 | -- | - |
testcase_36 | -- | - |
testcase_37 | -- | - |
testcase_38 | -- | - |
testcase_39 | -- | - |
testcase_40 | -- | - |
testcase_41 | -- | - |
testcase_42 | -- | - |
testcase_43 | -- | - |
testcase_44 | -- | - |
testcase_45 | -- | - |
testcase_46 | -- | - |
testcase_47 | -- | - |
testcase_48 | -- | - |
testcase_49 | -- | - |
testcase_50 | -- | - |
testcase_51 | -- | - |
testcase_52 | -- | - |
testcase_53 | -- | - |
testcase_54 | -- | - |
testcase_55 | -- | - |
testcase_56 | -- | - |
testcase_57 | -- | - |
testcase_58 | -- | - |
testcase_59 | -- | - |
testcase_60 | -- | - |
testcase_61 | -- | - |
testcase_62 | -- | - |
testcase_63 | -- | - |
testcase_64 | -- | - |
testcase_65 | -- | - |
testcase_66 | -- | - |
testcase_67 | -- | - |
testcase_68 | -- | - |
testcase_69 | -- | - |
testcase_70 | -- | - |
ソースコード
#include<bits/extc++.h> using namespace std; using namespace __gnu_cxx; int lower_bound(rope<long long> v,long long k){ int N=(int)(v.size()); if(N==0){ return 0; } //k<=v[i]であるような最小のi //存在しない場合はNを返す //O(|v|log^2|v|) if(v[N-1]<k){ return N; } if(k<=v[0]){ return 0; } int l=0; int r=N-1; while((r-l)>1){ int m=(l+r)/2; if(k<=v[m]){ r=m; continue; } l=m; } return r; } int main(){ int N,Q; scanf("%d%d",&N,&Q); rope<long long> A; for(int i=0;i<N;i++){ long long x; scanf("%lld",&x); A.push_back(x); } set<int,greater<int>> B;//indexを保存 queue<long long> C;//valueを保存 for(int i=0;i<N;i++){ B.insert(i); } for(;Q--;){ int c; scanf("%d",&c); if(c==1){ int k; long long x; scanf("%d%lld",&k,&x); k--; A.erase(k,1); A.insert(k,x); B.insert(k); continue; } if(c==2){ if(B.size()==0){ continue; } for(int i : B){ C.push(A[i]); A.erase(i,1); } B.clear(); while(!C.empty()){ long long pos=C.front(); C.pop(); int t=lower_bound(A.begin(),A.end(),pos)-A.begin(); A.insert(t,pos); } continue; } if(c==3){ int k; scanf("%d",&k); k--; printf("%lld\n",A[k]); continue; } } }