Submission #1840862
Source Code Expand
#include<bits/stdc++.h> #define N 1000006 using namespace std; char s0[N],t[N]; int n; int val[N],match[N],end[N]; int main(){ scanf("%d%s%s",&n,s0+1,t+1); for(int i=1,p=0,last,lleter;i<=n;i++) if(t[i]!=t[i-1]){ last=-1;end[i]=i;lleter=i; while(p+1<=i) p++,last=t[i]==s0[p]? p:last; if(last!=-1) match[i]=last; else return puts("-1"),0; }else end[lleter]=i; int shift=0,add=0,ans=0,p=0; for(int i=1;i<=n;i++) if(match[i]==end[i]){ continue; }else if(match[i]!=0){ shift++;add++;val[end[i]+1-shift]--; for(int j=p+1-shift;j<= match[i]-shift;j++) val[j]+=val[j-1]; p=match[i]-shift; ans=max(ans,val[p]+add); } cout<<ans<<endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | F - Shik and Copying String |
User | Wuvin |
Language | C++14 (GCC 5.4.1) |
Score | 0 |
Code Size | 838 Byte |
Status | CE |
Compile Error
./Main.cpp: In function ‘int main()’: ./Main.cpp:11:21: error: reference to ‘end’ is ambiguous last=-1;end[i]=i;lleter=i; ^ ./Main.cpp:6:21: note: candidates are: int end [1000006] int val[N],match[N],end[N]; ^ In file included from /usr/include/x86_64-linux-gnu/c++/5/bits/stdc++.h:94:0, from ./Main.cpp:1: /usr/include/c++/5/valarray:1226:5: note: template<class _Tp> const _Tp* std::end(const std::valarray<_Tp>&) end(const valarray<_Tp>& __va) ^ /usr/include/c++/5/valarray:1216:5: note: template<class _Tp> _Tp* std::end(std::valarray<_Tp>&) end(valarray<_Tp>& __va) ^ In file included from /usr/include/c++/5/string:51:0, from /usr/include/c++/5/bits/locale_classes.h:40, from /usr/include/c++/5/bits/ios_base.h:41, from /usr/include/c++/5/ios:42, from /usr/include/c++/5/istream:38, from /usr/include/c++/...