QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#837851#8701. Borderqzs23 2ms9972kbC++141.3kb2024-12-30 15:10:062024-12-30 15:10:07

Judging History

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

  • [2024-12-30 15:10:07]
  • 评测
  • 测评结果:23
  • 用时:2ms
  • 内存:9972kb
  • [2024-12-30 15:10:06]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
const int mod=1e9+3579;
const int base=13331;
const int N=2e6+100;
int n,h[N],p[N];
char s[N],t[N];
int maxn[N],ans[N][26];
signed main()
{
	// freopen("q.in","r",stdin);
	// freopen("q.out","w",stdout);
	scanf("%s%s",s+1,t+1);
	n=strlen(s+1);
	p[0]=1;
	for(int i=1;i<=n;i++)p[i]=1ll*p[i-1]*base%mod;
	for(int i=1;i<=n;i++)h[i]=(h[i-1]+1ll*p[i-1]*s[i]%mod)%mod;
	for(int i=1;i<=n;i++){
		if(1ll*h[i]*p[n-i]%mod==1ll*(h[n]-h[n-i]+mod)%mod){
			maxn[i]=max(maxn[i],i);
		}
		else {
			int l=1,r=i;
			while(l<r){
				int mid=(l+r)>>1;
				if(1ll*h[mid]*p[n-i]%mod==1ll*(h[n-i+mid]-h[n-i]+mod)%mod)l=mid+1;
				else r=mid;
			}
			int k=1ll*(s[n-i+l]-s[l]+mod)*p[l-1]%mod;
			int fir=k,sec=k*(l>=n-i+1);
			if(1ll*(h[i]+fir)*p[n-i]%mod==((long long)h[n]-h[n-i]+mod+sec)%mod){
				ans[l][s[n-i+l]-'a']=max(ans[l][s[n-i+l]-'a'],i);
			}
			k=1ll*(s[l]-s[n-i+l]+mod)*p[n-i+l-1]%mod;
			fir=k*(n-i+l<=i);sec=k;
			if(1ll*(h[i]+fir)*p[n-i]%mod==((long long)h[n]-h[n-i]+mod+sec)%mod){
				ans[n-i+l][s[l]-'a']=max(ans[n-i+l][s[l]-'a'],i);
			}
		}
	}
	for(int i=1;i<=n;i++)maxn[i]=max(maxn[i],maxn[i-1]);
	for(int i=1;i<=n;i++){
		if(s[i]==t[i])printf("%d\n",maxn[n]);
		else {
			printf("%d\n",max(ans[i][t[i]-'a'],maxn[min(i,n-i+1)-1]));
		}
	}
}

詳細信息

Subtask #1:

score: 23
Accepted

Test #1:

score: 23
Accepted
time: 0ms
memory: 7924kb

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: 23
Accepted
time: 2ms
memory: 9908kb

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: 23
Accepted
time: 2ms
memory: 9972kb

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: 23
Accepted
time: 2ms
memory: 9972kb

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: 23
Accepted
time: 2ms
memory: 9944kb

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: 23
Accepted
time: 2ms
memory: 9968kb

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: 0
Wrong Answer
time: 0ms
memory: 7900kb

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:

wrong answer 3139th numbers differ - expected: '717', found: '4623'

Subtask #3:

score: 0
Skipped

Dependency #1:

100%
Accepted

Dependency #2:

0%

Subtask #4:

score: 0
Skipped

Dependency #1:

100%
Accepted

Dependency #2:

0%