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++/...