QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#413255#8701. Bordergrass8cow23 4ms20312kbC++171.6kb2024-05-17 10:39:242024-05-17 10:39:24

Judging History

你现在查看的是最新测评结果

  • [2024-05-17 10:39:24]
  • 评测
  • 测评结果:23
  • 用时:4ms
  • 内存:20312kb
  • [2024-05-17 10:39:24]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
int n;
char s[2001000],t[2010000];
int z_[2010010],z[2010001];
void doi(){
    memset(z,0,sizeof(z));
    z[1]=n;
    for(int i=2,t=0,mr=0;i<=n;i++){
        if(i<=mr)z[i]=min(mr-i+1,z[i-t+1]);
        while(i+z[i]<=n&&s[1+z[i]]==s[i+z[i]])z[i]++;
        if(i+z[i]-1>mr)t=i,mr=i+z[i]-1;
    }
}
const int mod=1e9+7,W=131;
int hs[2001000],wi[2001000],ans[2001000];
void ie(int x,int z){
    if(x+z<=n&&t[x]!=s[x+z])return;
    if(x-z>=1&&t[x]!=s[x-z])return;
    ans[x]=max(ans[x],n-z);
}
int has(int l,int r){
    return ((hs[r]-1ll*hs[l-1]*wi[r-l+1]%mod)%mod+mod)%mod;
}
int main(){
    scanf("%s%s",s+1,t+1);n=strlen(s+1);
    reverse(s+1,s+n+1);doi();
    for(int i=1;i<=n;i++)z_[i]=z[i];reverse(s+1,s+n+1);doi();
    wi[0]=1;
    for(int i=1;i<=n;i++)wi[i]=1ll*wi[i-1]*W%mod,hs[i]=(1ll*W*hs[i-1]%mod+s[i])%mod;
    int e_=0;
    for(int e=1;e<n;e++){
        int z1=z[e+1],z2=z_[e+1];
        if(z1+z2>=n-e){
            if(n-e+1<=e){
                int pl=n-e+1,pr=e;
                for(int o=pl;o<=(e_?(n-e_):pr);o++)ans[o]=max(ans[o],n-e);
                for(int o=(e_?(e_+1):pl);o<=pr;o++)ans[o]=max(ans[o],n-e);
                e_=e;
            }
        }
        else if(z1+z2==n-e-1)ie(z1+1,e),ie(z1+1+e,e);
        else{
            int p1=z1+1,p2=n-e-z2;
            if(p1+e!=p2)continue;
            if(has(p1+1,p2-1)!=has(p1+1+e,p2+e-1))continue;
            ie(p2,e);
        }
    }
    if(e_){for(int i=1;i<=n;i++)if(s[i]==t[i])ans[i]=max(ans[i],n-e_);}
    for(int i=1;i<=n;i++)printf("%d\n",ans[i]);
    return 0;
}

详细

Subtask #1:

score: 23
Accepted

Test #1:

score: 23
Accepted
time: 3ms
memory: 18220kb

input:

cbaababaabacbaababaabacbaabacbaababaabacbaaba
dabbababbabaabbafabbgbaabfebaabzababbayaabcac

output:

0
0
0
0
0
0
6
6
6
6
6
6
6
6
6
6
6
17
17
17
17
17
17
17
17
17
17
17
6
6
6
6
6
6
6
6
6
6
6
0
0
0
3
0
1

result:

ok 45 numbers

Test #2:

score: 0
Accepted
time: 0ms
memory: 20200kb

input:

cbaababaabacbaabadbaababaabacbaabacbaaba
aabwaxjbbabtalbabcasbabibbabaabbabaabiac

output:

3
0
0
0
0
0
6
6
6
6
6
6
6
6
6
6
6
23
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
0
0
0
0
0
1

result:

ok 40 numbers

Test #3:

score: 0
Accepted
time: 3ms
memory: 20184kb

input:

cadaabacabacabacabaabacabacadaabacabacaba
bbbbbabtbabababalalbawababababbaoababebdc

output:

2
0
4
0
0
0
0
0
0
0
0
0
0
0
0
15
15
15
15
15
15
15
15
15
15
15
0
0
0
0
0
0
0
0
0
0
0
0
0
4
1

result:

ok 41 numbers

Test #4:

score: 0
Accepted
time: 3ms
memory: 20264kb

input:

dabacbaadcbaadabacbaadabecbaadcbaadabacbaadabacbaa
ababaabbyaarbabfbvdbuaoaaaabbaaabbababaabbababqadd

output:

2
0
0
0
0
0
0
0
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
29
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
8
0
0
0
0
0
0
2
1

result:

ok 50 numbers

Test #5:

score: 0
Accepted
time: 3ms
memory: 20264kb

input:

edacbcacacbcaecbcacacbcadacbcacacbca
sabaaabtbaaabaaalblbawaeabaaababoaae

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
13
0
0
0
0
0
0
0
0
0
0
0
1

result:

ok 36 numbers

Test #6:

score: 0
Accepted
time: 0ms
memory: 20208kb

input:

cbaababaabacbaabacbaabdbaabacbaabacbaaba
aabbababbaoaabbxbaabbaqabbabltbpagaabcac

output:

3
0
0
0
0
0
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
0
0
0
3
0
1

result:

ok 40 numbers

Subtask #2:

score: 0
Wrong Answer

Dependency #1:

100%
Accepted

Test #7:

score: 31
Accepted
time: 4ms
memory: 20304kb

input:

abacadcabbacabbacabcabbacabacabbacabbacabcabbacabbacadcabbacabbacabcabbacabacabbacabbacabcabbacabbacadcabbacabbacabcabbacababacadcabbacabbacabcabbacabacabbacabbacabcabbacabbacadcabbacabbacaecabbacabacabbacabbacabcabbacabbacadcabbacabbacabcabbacababacadcabbacabbacabcabbacabacabbacabbacabcabbacabbacad...

output:

27
0
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75
75...

result:

ok 4623 numbers

Test #8:

score: 0
Accepted
time: 0ms
memory: 20284kb

input:

gcdcbcacacacbcacdcbcacaedcbcacacacbcacdcfcacacdcbcacaedcbcacacacbcacdcbcacacdcbcacacdcbcacacacbcacdcbcacaedcbcacacacbcacdcbcacacdcbcacacdcbcacacacbcacdcbcacaedcbcacacacbcacdcbcacacdcbcacagcdcbcacacacbcacdcbcacaedcbcacacacbcacdcbcacacdcbcacaedcbcacacacbcacdcbcacacdcbcacacdcbcacacacbcacdcbcacaedcbcaca...

output:

187
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

result:

ok 3182 numbers

Test #9:

score: 0
Accepted
time: 3ms
memory: 18240kb

input:

fbcababaabaababaababdababaabaababaababcababaababcababaabaababaababcababaababcababaabaababaababcababaababcababaabaababaababcababaabaababaababcababaababcababaabaababaababcababaababcababaabaababaababdababaabaababaababcababaababcababaabaababaababcababaababcababaabaababaababcababaababcababaabaabebaababda...

output:

103
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

result:

ok 4057 numbers

Test #10:

score: -31
Wrong Answer
time: 0ms
memory: 20312kb

input:

accaeaabacabaabacabacabaabacabaabacdbacabaabacabaabacabacabaabacabaabacdbacabaabacabaabacabacabaabacabacabaabacabaabacabacabaabacabaabacdbacabaabacabaabacabacabaabacabacabaabacabaabacabacabaabacabaabacdbacabaabacabaabacabacabaabacabacabaabacabaabacabacabaabacabaabacdbacabaabacabaabacabacabaabacabaab...

output:

0
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
...

result:

wrong answer 659th numbers differ - expected: '1657', found: '630'

Subtask #3:

score: 0
Skipped

Dependency #1:

100%
Accepted

Dependency #2:

0%

Subtask #4:

score: 0
Skipped

Dependency #1:

100%
Accepted

Dependency #2:

0%