Submission #1778076
Source Code Expand
#include<bits/stdc++.h>
#define sqr(x) ((x)*(x))
#define ll long long
#define ull unsigned long long
#define ui unsigned int
#define ld long double
#define vi vector<int>
#define HEAP(...) priority_queue<__VA_ARGS__ >
#define heap(...) priority_queue<__VA_ARGS__,vector<__VA_ARGS__ >,greater<__VA_ARGS__ > >
#define pii pair<int,int>
#define pb push_back
#define mp make_pair
#define debuge cerr<<"isok"<<endl
#define debug(x) cerr<<#x<<"="<<x<<endl
#define dprintf(...) fprintf(stderr,__VA_ARGS__)
#define SS second
#define FF first
#define ls (k<<1)
#define rs (k<<1|1)
#define clr(a,x) memset(a,x,sizeof(a))
#define cpy(a,x) memcpy(a,x,sizeof(a))
#define file(x) freopen(x".in","r",stdin),freopen(x".out","w",stdout)
#define SZ(x) ((int)x.size())
using namespace std;
template<class T> inline void gmin(T &x,const T &y){if(x>y) x=y;}
template<class T> inline void gmax(T &x,const T &y){if(x<y) x=y;}
const int BufferSize=1<<16;
char buffer[BufferSize],*Bufferhead,*Buffertail;
bool Terminal;
inline char Getchar(){
if(Bufferhead==Buffertail){
int l=fread(buffer,1,BufferSize,stdin);
if(!l){Terminal=1;return 0;}
Buffertail=(Bufferhead=buffer)+l;
}
return *Bufferhead++;
}
template<class T>inline bool read(T &x){
x=0;char c=Getchar(),rev=0;
while(c<'0'||c>'9'){rev|=c=='-';c=Getchar();if(Terminal)return 0;}
while(c>='0'&&c<='9') x=x*10+c-'0',c=Getchar();
if(c=='.'){
c=Getchar();double t=0.1;
while(c>='0'&&c<='9') x=x+(c-'0')*t,c=Getchar(),t=t/10;
}
x=rev?-x:x;
return 1;
}
template<class T1,class T2> inline bool read(T1 &x,T2 &y){return read(x)&read(y);}
template<class T1,class T2,class T3> inline bool read(T1 &x,T2 &y,T3 &z){return read(x)&read(y)&read(z);}
template<class T1,class T2,class T3,class T4> inline bool read(T1 &x,T2 &y,T3 &z,T4 &w){return read(x)&read(y)&read(z)&read(w);}
inline bool reads(char *x){
char c=Getchar();
while(c<33||c>126){c=Getchar();if(Terminal)return 0;}
while(c>=33&&c<=126) (*x++)=c,c=Getchar();
*x=0;return 1;
}
template<class T>inline void print(T x,const char c='\n'){
if(!x){putchar('0');putchar(c);return;}
if(x<0) putchar('-'),x=-x;
int m=0,a[20];
while(x) a[m++]=x%10,x/=10;
while(m--) putchar(a[m]+'0');
putchar(c);
}
//--------------------------------head---------------------------------------------
const int inf=0x3f3f3f3f;
const int N=1000005,M=100005,mod=1e9+7;
template<class T,class S> inline void ch(T &x,const S y){x=(x+y)%mod;}
inline int exp(int x,int y,const int mod=::mod){
int ans=1;
while(y){
if(y&1) ans=(ll)ans*x%mod;
x=(ll)x*x%mod;y>>=1;
}return ans;
}
int n,ans,dp[N],mx[N];
char s1[N],s2[N],res[N];
vi now;
inline void solve(vi A){
static int a[N],b[N];
int m=A.size();
gmax(ans,1);
for(int i=1;i<=m;i++)
a[i]=A[i-1];
reverse(a+1,a+m+1);
// for(int i=1;i<=m;i++)
// printf("%d ",a[i]);puts("");
a[m+1]=mx[a[m]]+1;m++;
for(int i=1;i<=m;i++)
b[i]=a[i]-i;
for(int i=m-1,j=m;i;i--){
int k=mx[a[i]]-i;//gmax(ans,lower_bound(b+1,b+m+1,mx[a[i]]-i
while(j>1&&b[j-1]>=k) j--;
gmax(ans,j-i);
}
}
int main(){
#ifdef rqgao2014
freopen("input.txt","r",stdin);
#endif
scanf("%d",&n);
scanf("%s%s",s1+1,s2+1);
if(strcmp(s1+1,s2+1)==0){puts("0");return 0;}
for(int i=n,j=n;i;i--){
gmin(j,i);
while(j&&s1[j]!=s2[i]) j--;
if(!j){puts("-1");return 0;}
gmax(mx[j],i);
}
int last=0;
for(int i=n;i;i--){
if(!mx[i]) continue;
// dprintf("%d %d\n",i,mx[i]);
if(last){
if(mx[i]<last) solve(now),now.clear();
}
last=i;now.pb(i);
}
solve(now);
for(int i=1;i<=mx[1];i++) res[i]=s1[1];
printf("%d\n",ans);
return 0;
}
Submission Info
Submission Time
2017-11-16 22:53:10+0900
Task
F - Shik and Copying String
User
rqgao2014
Language
C++14 (GCC 5.4.1)
Score
1500
Code Size
3684 Byte
Status
AC
Exec Time
65 ms
Memory
23788 KB
Compile Error
./Main.cpp: In function ‘int main()’:
./Main.cpp:106:16: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%d",&n);
^
./Main.cpp:107:25: warning: ignoring return value of ‘int scanf(const char*, ...)’, declared with attribute warn_unused_result [-Wunused-result]
scanf("%s%s",s1+1,s2+1);
^
Judge Result
Set Name
Sample
All
Score / Max Score
0 / 0
1500 / 1500
Status
Set Name
Test Cases
Sample
example0.txt, example1.txt, example2.txt, example3.txt
All
000.txt, 001.txt, 002.txt, 003.txt, 004.txt, 005.txt, 006.txt, 007.txt, 008.txt, 009.txt, 010.txt, 011.txt, 012.txt, 013.txt, 014.txt, 015.txt, 016.txt, 017.txt, 018.txt, 019.txt, 020.txt, 021.txt, 022.txt, 023.txt, 024.txt, 025.txt, 026.txt, 027.txt, 028.txt, 029.txt, 030.txt, 031.txt, 032.txt, 033.txt, 034.txt, 035.txt, 036.txt, 037.txt, 038.txt, 039.txt, 040.txt, 041.txt, 042.txt, 043.txt, 044.txt, 045.txt, 046.txt, 047.txt, 048.txt, 049.txt, 050.txt, 051.txt, 052.txt, 053.txt, 054.txt, 055.txt, 056.txt, 057.txt, 058.txt, example0.txt, example1.txt, example2.txt, example3.txt
Case Name
Status
Exec Time
Memory
000.txt
AC
1 ms
2304 KB
001.txt
AC
1 ms
2304 KB
002.txt
AC
2 ms
4352 KB
003.txt
AC
2 ms
4352 KB
004.txt
AC
2 ms
6400 KB
005.txt
AC
2 ms
6400 KB
006.txt
AC
2 ms
6400 KB
007.txt
AC
2 ms
4352 KB
008.txt
AC
2 ms
6400 KB
009.txt
AC
2 ms
4352 KB
010.txt
AC
2 ms
6400 KB
011.txt
AC
2 ms
6400 KB
012.txt
AC
2 ms
6400 KB
013.txt
AC
2 ms
6400 KB
014.txt
AC
2 ms
6400 KB
015.txt
AC
2 ms
6400 KB
016.txt
AC
2 ms
6400 KB
017.txt
AC
2 ms
6400 KB
018.txt
AC
2 ms
6400 KB
019.txt
AC
2 ms
6400 KB
020.txt
AC
2 ms
6400 KB
021.txt
AC
2 ms
6400 KB
022.txt
AC
2 ms
6400 KB
023.txt
AC
2 ms
6400 KB
024.txt
AC
2 ms
6400 KB
025.txt
AC
7 ms
5376 KB
026.txt
AC
21 ms
23788 KB
027.txt
AC
17 ms
17648 KB
028.txt
AC
29 ms
11520 KB
029.txt
AC
32 ms
20716 KB
030.txt
AC
54 ms
11520 KB
031.txt
AC
65 ms
11520 KB
032.txt
AC
48 ms
11520 KB
033.txt
AC
46 ms
11520 KB
034.txt
AC
40 ms
11520 KB
035.txt
AC
38 ms
11520 KB
036.txt
AC
33 ms
11520 KB
037.txt
AC
31 ms
11520 KB
038.txt
AC
28 ms
11520 KB
039.txt
AC
25 ms
11520 KB
040.txt
AC
26 ms
11520 KB
041.txt
AC
22 ms
11520 KB
042.txt
AC
17 ms
11520 KB
043.txt
AC
16 ms
11520 KB
044.txt
AC
16 ms
11520 KB
045.txt
AC
16 ms
11520 KB
046.txt
AC
16 ms
11776 KB
047.txt
AC
16 ms
12008 KB
048.txt
AC
17 ms
13448 KB
049.txt
AC
18 ms
13792 KB
050.txt
AC
10 ms
9472 KB
051.txt
AC
11 ms
9472 KB
052.txt
AC
9 ms
7424 KB
053.txt
AC
19 ms
11520 KB
054.txt
AC
19 ms
11520 KB
055.txt
AC
19 ms
11648 KB
056.txt
AC
19 ms
11776 KB
057.txt
AC
20 ms
12392 KB
058.txt
AC
20 ms
12952 KB
example0.txt
AC
2 ms
6400 KB
example1.txt
AC
1 ms
2304 KB
example2.txt
AC
2 ms
6400 KB
example3.txt
AC
2 ms
4352 KB