제출 #1302928

#제출 시각아이디문제언어결과실행 시간메모리
1302928Petrix원형 문자열 (IZhO13_rowords)C++20
100 / 100
75 ms125756 KiB
#include <iostream> #include <algorithm> using namespace std; #define int long long string s,s1; int st[2001][4001]; int dr[2001][4001]; int n,m; int solve(){ int i,j,rasp=0,cnt; for(i=0;i<=2000;i++){ for(j=0;j<=4000;j++){ st[i][j]=dr[i][j]=0; } } for(i=1;i<=m;i++) dr[0][i]=i; for(i=1;i<=n;i++){ for(j=1;j<=m;j++) { if(s[i]==s1[j]){ dr[i][j]=st[i][j-1]; st[i][j]=dr[i-1][j]; }else{ dr[i][j]=max(st[i][j-1],dr[i-1][j]); st[i][j]=min(st[i][j-1],dr[i-1][j]); } } } for(i=1;i<=m/2;i++) { cnt=0; for(j=i;j<=i+m/2-1;j++){ if(dr[n][j]<=i-1) cnt++; } rasp=max(rasp,cnt); } return rasp; } signed main() { int rasp; cin>>s>>s1; n=s.size();m=2*s1.size(); s=" "+s;s1=" "+s1+s1; rasp=solve(); reverse(s1.begin()+1,s1.begin()+m+1); rasp=max(rasp,solve()); cout<<rasp; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...