提出 #67755837


ソースコード 拡げる

#include<bits/stdc++.h>
using namespace std;
constexpr int N=5e5;
constexpr int B=700;
constexpr int N_B=715;

int n,q;
string s;

int L[N+5],R[N+5],length[N+5];

int lc[N_B+5],rc[N_B+5],mc[N_B+5];

void upd(const int i,const int l,const int r){
	lc[i/B]=1;
	for(int j=l+1;j<=r;++j){
		if(s[j]==s[j-1]) ++lc[i/B];
		else break;
	}
	rc[i/B]=1;
	for(int j=r-1;j>=l;--j){
		if(s[j]==s[j+1]) ++rc[i/B];
		else break;
	}
	int tmp=1;
	for(int i=l+1;i<=r;++i){
		if(s[i]!=s[i-1]) mc[i/B]=max(mc[i/B],tmp),tmp=1;
		else ++tmp;
	}
	mc[i/B]=max(mc[i/B],tmp);
}

int query(const int l,const int r){
	int res=0,tmp;
	
	if(l/B==r/B){
		tmp=1;
		for(int i=l+1;i<=r;++i){
			if(s[i]!=s[i-1]) res=max(res,tmp),tmp=1;
			else ++tmp;
		}
		res=max(res,tmp);
		return res;
	}
	
	upd(l/B,l,R[l/B]),upd(r/B,L[r/B],r);
	res=mc[l/B],tmp=rc[l/B];
	
	for(int i=l/B+1;i<=r/B;++i){
		res=max(res,mc[i]);
		if(s[L[i]]!=s[R[i-1]]){
			res=max(res,tmp);
			tmp=rc[i];
		}
		else if(lc[i]!=length[i*B+1]){
			res=max(res,tmp+lc[i]);
			tmp=rc[i];
		}
		else tmp+=lc[i];
	}
	
	res=max(res,tmp);
	
	upd(l/B,L[l/B],R[l/B]),upd(r/B,L[r/B],R[r/B]);
	
	return res;
}

int main(){
	ios::sync_with_stdio(0);
	
	cin>>n>>q;
	
	cin>>s;
	s=" "+s;
	
	for(int i=1;i<=n;++i){
		L[i]=i/B*B+1;
		R[i]=min(i/B*B+B,n);
		length[i]=R[i]-L[i]+1;
		if(i%B==0){
			upd(i,L[i/B],R[i/B]);
		}
	}
	
	int op;
	
	while(q--){
		cin>>op;
		
		if(op==1){
			int i;char x;
			cin>>i>>x;
			s[i]=x;
			upd(i,L[i/B],R[i/B]);
		}
		else if(op==2){
			int l,r;
			cin>>l>>r;
			cout<<query(l,r)<<endl;
		}
		else{
			cout<<"I AK IOI!!!"<<endl;
		}
	}
	
	return 0;
}

提出情報

提出日時
問題 F - Max Combo
ユーザ buzhidao01
言語 C++ 20 (gcc 12.2)
得点 0
コード長 1705 Byte
結果 WA
実行時間 4418 ms
メモリ 9916 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 0 / 525
結果
AC × 2
AC × 4
WA × 10
TLE × 60
セット名 テストケース
Sample sample_01.txt, sample_02.txt
All evil_01.txt, evil_02.txt, evil_03.txt, evil_04.txt, evil_05.txt, evil_06.txt, evil_07.txt, evil_08.txt, evil_09.txt, evil_10.txt, evil_11.txt, evil_12.txt, evil_13.txt, evil_14.txt, evil_15.txt, evil_16.txt, evil_17.txt, evil_18.txt, evil_19.txt, evil_20.txt, evil_21.txt, evil_22.txt, evil_23.txt, evil_24.txt, evil_25.txt, evil_26.txt, evil_27.txt, evil_28.txt, sample_01.txt, sample_02.txt, test_01.txt, test_02.txt, test_03.txt, test_04.txt, test_05.txt, test_06.txt, test_07.txt, test_08.txt, test_09.txt, test_10.txt, test_11.txt, test_12.txt, test_13.txt, test_14.txt, test_15.txt, test_16.txt, test_17.txt, test_18.txt, test_19.txt, test_20.txt, test_21.txt, test_22.txt, test_23.txt, test_24.txt, test_25.txt, test_26.txt, test_27.txt, test_28.txt, test_29.txt, test_30.txt, test_31.txt, test_32.txt, test_33.txt, test_34.txt, test_35.txt, test_36.txt, test_37.txt, test_38.txt, test_39.txt, test_40.txt, test_41.txt, test_42.txt, test_43.txt, test_44.txt
ケース名 結果 実行時間 メモリ
evil_01.txt TLE 4415 ms 9660 KiB
evil_02.txt TLE 4415 ms 9776 KiB
evil_03.txt TLE 4415 ms 9700 KiB
evil_04.txt TLE 4415 ms 9744 KiB
evil_05.txt TLE 4415 ms 9672 KiB
evil_06.txt TLE 4415 ms 9776 KiB
evil_07.txt TLE 4415 ms 9776 KiB
evil_08.txt TLE 4415 ms 9804 KiB
evil_09.txt TLE 4415 ms 9764 KiB
evil_10.txt TLE 4415 ms 9804 KiB
evil_11.txt TLE 4415 ms 9764 KiB
evil_12.txt TLE 4415 ms 9744 KiB
evil_13.txt TLE 4415 ms 9748 KiB
evil_14.txt TLE 4415 ms 9764 KiB
evil_15.txt TLE 4415 ms 9672 KiB
evil_16.txt TLE 4415 ms 9700 KiB
evil_17.txt TLE 4415 ms 9768 KiB
evil_18.txt TLE 4415 ms 9748 KiB
evil_19.txt TLE 4415 ms 9804 KiB
evil_20.txt TLE 4415 ms 9752 KiB
evil_21.txt TLE 4418 ms 9776 KiB
evil_22.txt TLE 4415 ms 9672 KiB
evil_23.txt TLE 4415 ms 9752 KiB
evil_24.txt TLE 4415 ms 9672 KiB
evil_25.txt TLE 4415 ms 9772 KiB
evil_26.txt TLE 4415 ms 9752 KiB
evil_27.txt TLE 4415 ms 9804 KiB
evil_28.txt TLE 4415 ms 9800 KiB
sample_01.txt AC 1 ms 3456 KiB
sample_02.txt AC 1 ms 3428 KiB
test_01.txt TLE 4415 ms 9752 KiB
test_02.txt TLE 4415 ms 9916 KiB
test_03.txt TLE 4415 ms 9772 KiB
test_04.txt TLE 4415 ms 9832 KiB
test_05.txt TLE 4415 ms 9780 KiB
test_06.txt TLE 4415 ms 9804 KiB
test_07.txt TLE 4415 ms 9800 KiB
test_08.txt TLE 4418 ms 9836 KiB
test_09.txt TLE 4415 ms 9752 KiB
test_10.txt TLE 4415 ms 9736 KiB
test_11.txt TLE 4415 ms 9708 KiB
test_12.txt TLE 4415 ms 9748 KiB
test_13.txt TLE 4418 ms 9820 KiB
test_14.txt TLE 4415 ms 9748 KiB
test_15.txt TLE 4411 ms 9768 KiB
test_16.txt TLE 4415 ms 9840 KiB
test_17.txt TLE 4415 ms 9776 KiB
test_18.txt TLE 4415 ms 9804 KiB
test_19.txt WA 1234 ms 3540 KiB
test_20.txt WA 1230 ms 3448 KiB
test_21.txt WA 772 ms 3604 KiB
test_22.txt WA 773 ms 3476 KiB
test_23.txt WA 808 ms 3420 KiB
test_24.txt WA 782 ms 3480 KiB
test_25.txt WA 1926 ms 3560 KiB
test_26.txt WA 1364 ms 3532 KiB
test_27.txt WA 2046 ms 3472 KiB
test_28.txt WA 2051 ms 3472 KiB
test_29.txt TLE 4415 ms 9800 KiB
test_30.txt TLE 4415 ms 9744 KiB
test_31.txt TLE 4415 ms 9820 KiB
test_32.txt TLE 4415 ms 9700 KiB
test_33.txt TLE 4415 ms 9836 KiB
test_34.txt TLE 4411 ms 9764 KiB
test_35.txt TLE 4415 ms 9664 KiB
test_36.txt TLE 4411 ms 9840 KiB
test_37.txt TLE 4415 ms 9760 KiB
test_38.txt TLE 4415 ms 9704 KiB
test_39.txt TLE 4415 ms 9676 KiB
test_40.txt TLE 4415 ms 9804 KiB
test_41.txt TLE 4415 ms 9752 KiB
test_42.txt TLE 4415 ms 9708 KiB
test_43.txt AC 768 ms 9688 KiB
test_44.txt AC 768 ms 9612 KiB