結果

問題 No.2992 Range ABCD String Query
ユーザー Cecil
提出日時 2024-12-17 01:42:20
言語 C++23
(gcc 13.3.0 + boost 1.87.0)
結果
TLE  
実行時間 -
コード長 1,050 bytes
コンパイル時間 1,287 ms
コンパイル使用メモリ 115,960 KB
実行使用メモリ 13,760 KB
最終ジャッジ日時 2024-12-17 01:45:04
合計ジャッジ時間 161,822 ms
ジャッジサーバーID
(参考情報)
judge4 / judge3
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 19 TLE * 22
権限があれば一括ダウンロードができます

ソースコード

diff #
プレゼンテーションモードにする

#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
#include<map>
#include<climits>
using namespace std;
const int INF = INT_MAX;
int LIS(const vector<int>&L){
vector<int> lis(L.size()+1, INF);
for (int l:L){
*upper_bound(lis.begin(), lis.end(), l) = l;
}
return L.size()-(lower_bound(lis.begin(),lis.end(),INF)-lis.begin());
}
int main(){
int N,Q;
cin >> N >> Q;
string S;
cin >> S;
map<char, int> dic = {{'A',0},{'B',1},{'C',2},{'D',3}};
vector<int> seq(N);
for (int i=0; i<N; i++){
seq[i] = dic[S[i]];
}
for (int i=0; i<Q; i++){
string query;
cin >> query;
if (query=="1"){
int x;
char c;
cin >> x >> c;
--x;
seq[x] = dic[c];
}else if (query=="2"){
int l,r;
cin >> l >> r;
--l;
--r;
vector<int> sub_seq(seq.begin()+l,seq.begin()+r+1);
cout<<LIS(sub_seq)<<endl;
}
}
return 0;
}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
0