#include<bits/stdc++.h>
using namespace std;
using ll=long long;
using pii=pair<ll,ll>;
ll ga[1510];
ll ha[1510];
ll gb[1510];
ll hb[1510];
set<pii> s;
ll ipow(ll x,int n){
if(n==0)return 1;
if(n==1)return x;
if(n&1)return ipow(x*x,n/2)*x;
return ipow(x*x,n/2);
}
int res=0;
int main(void){
ios::sync_with_stdio(0);cin.tie(0);
string a,b;
cin>>a>>b;
ga[1]=ipow(3,'z'-a[0]);
ha[1]=ipow(5,a[0]-'a');
for(int i=1;i<a.size();i++){
ga[i+1]=ga[i]+ipow(3,'z'-a[i]);
ha[i+1]=ha[i]+ipow(5,a[i]-'a');
}
gb[1]=ipow(3,'z'-b[0]);
hb[1]=ipow(5,b[0]-'a');
for(int i=1;i<b.size();i++){
gb[i+1]=gb[i]+ipow(3,'z'-b[i]);
hb[i+1]=hb[i]+ipow(5,b[i]-'a');
}
for(int i=1;i<a.size();i++){
for(int j=0;j<i;j++){
ll x=ga[i]-ga[j];
ll y=ha[i]-ha[j];
s.insert(pii(x,y));
}
}
for(int i=1;i<b.size();i++){
for(int j=0;j+res<i;j++){
ll x=gb[i]-gb[j];
ll y=hb[i]-hb[j];
if(s.find(pii(x,y))!=s.end()){
res=max(res,i-j);
break;
}
}
}
printf("%d",res);
}
Compilation message
interval.cpp: In function 'int main()':
interval.cpp:28:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
28 | for(int i=1;i<a.size();i++){
| ~^~~~~~~~~
interval.cpp:34:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
34 | for(int i=1;i<b.size();i++){
| ~^~~~~~~~~
interval.cpp:39:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
39 | for(int i=1;i<a.size();i++){
| ~^~~~~~~~~
interval.cpp:46:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::__cxx11::basic_string<char>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
46 | for(int i=1;i<b.size();i++){
| ~^~~~~~~~~
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
1 ms |
384 KB |
Output is correct |
2 |
Correct |
1 ms |
384 KB |
Output is correct |
3 |
Incorrect |
1 ms |
384 KB |
Output isn't correct |
4 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
32 ms |
5112 KB |
Output is correct |
2 |
Incorrect |
41 ms |
6396 KB |
Output isn't correct |
3 |
Halted |
0 ms |
0 KB |
- |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Correct |
296 ms |
29176 KB |
Output is correct |
2 |
Correct |
229 ms |
30072 KB |
Output is correct |
3 |
Correct |
254 ms |
29816 KB |
Output is correct |
4 |
Correct |
304 ms |
29176 KB |
Output is correct |
5 |
Correct |
262 ms |
30072 KB |
Output is correct |
6 |
Correct |
299 ms |
29560 KB |
Output is correct |
7 |
Correct |
209 ms |
30072 KB |
Output is correct |
8 |
Correct |
212 ms |
30072 KB |
Output is correct |
9 |
Correct |
213 ms |
30200 KB |
Output is correct |
10 |
Correct |
212 ms |
30072 KB |
Output is correct |
# |
결과 |
실행 시간 |
메모리 |
Grader output |
1 |
Incorrect |
191 ms |
9720 KB |
Output isn't correct |
2 |
Halted |
0 ms |
0 KB |
- |