QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#832007 | #8701. Border | _scz_ | 23 | 1ms | 10156kb | C++14 | 1.7kb | 2024-12-25 18:31:04 | 2024-12-25 18:31:06 |
Judging History
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%