QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#832007#8701. Border_scz_23 1ms10156kbC++141.7kb2024-12-25 18:31:042024-12-25 18:31:06

Judging History

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

  • [2024-12-25 18:31:06]
  • 评测
  • 测评结果:23
  • 用时:1ms
  • 内存:10156kb
  • [2024-12-25 18:31:04]
  • 提交

answer

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<queue>
#define boo(i) bitset<i>
#define ri register int
#define rll register long long
#define ll long long
#define ull unsigned long long
#define mem(x) memset(x,0,sizeof(x))
#define max_(i,j) (i<j?j:i)
#define min_(i,j) (i<j?i:j)
#define abs_(x) (x>0?x:(-x))
using namespace std;
int n;
const int MAXN=3e6+5;
ull has[MAXN],pw[MAXN];
ull geth(int l,int r){
	if(l>r){
		return 0;
	} 
	return has[r]-has[l-1]*pw[r-l+1];
}
int maxn[MAXN];
char a[MAXN],b[MAXN];
bool can[MAXN];
int main(){
	scanf("%s%s",a+1,b+1);
	n=strlen(a+1);
	pw[0]=1ull;
	for(int i=1;i<=n;i++){
		pw[i]=pw[i-1]*131;
		has[i]=has[i-1]*131+a[i];
	}
	for(int i=1;i<=n;i++){
		if(geth(1,i)==geth(n-i+1,n)){
			can[i]=1;
			continue;
		}
		int l=1,r=i-1,mid;
		if(geth(1,1)!=geth(n-i+1,n-i+1)){
			l=0;
		}else{
			
			while(l<r){
				mid=(l+r+1)>>1;
				if(geth(1,mid)==geth(n-i+1,n-i+mid)){
					l=mid;
				}else{
					r=mid-1;
				}
			}	
		}
		ull now1=has[i]+pw[i-l-1]*(b[l+1]-a[l+1]);
		ull now2=geth(n-i+1,n);
		if(l+1>=n-i+1) now2+=pw[n-l-1]*(b[l+1]-a[l+1]);
		if(now1==now2){
			maxn[l+1]=max(maxn[l+1],i);
		}
		now1=geth(1,i);
		if(n-i+l+1<=i)now1+=pw[i-(n-i+l+1)]*(b[n-i+l+1]-a[n-i+l+1]);
		now2=geth(n-i+1,n)+(b[n-i+l+1]-a[n-i+l+1])*pw[i-l-1];
		if(now1==now2){
			maxn[n-i+l+1]=max(maxn[n-i+l+1],i);
		}
	}
	int lst=0;
	for(int i=1;i<=n;i++){
		if(i*2-2<n){
			maxn[i]=max(maxn[i],lst);
			maxn[n-i+1]=max(maxn[n-i+1],lst);
		}
		if(can[i])lst=i;
	}
	for(int i=1;i<=n;i++){
		if(a[i]==b[i]){
			maxn[i]=max(maxn[i],lst);
		}
		printf("%d\n",maxn[i]);
	}
	
}

Details

Tip: Click on the bar to expand more detailed information

Subtask #1:

score: 23
Accepted

Test #1:

score: 23
Accepted
time: 1ms
memory: 10048kb

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: 0ms
memory: 10036kb

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: 0ms
memory: 10040kb

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: 1ms
memory: 9996kb

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: 1ms
memory: 10048kb

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: 0ms
memory: 9912kb

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: 1ms
memory: 10156kb

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%