Untitled
unknown
c_cpp
3 months ago
1.1 kB
5
Indexable
#include <bits/stdc++.h>
#pragma GCC optimize("O3")
using namespace std;
#define int long long
const int N = 1e6 + 10;
const int inf = 1e15;
const int mod = 998244353;
inline void solve(){
string a, b;
cin >> a >> b;
int n = a.length();
vector<vector<int>> pos(n + 1, vector<int>(26, n));
for(int i = n - 1;i >= 0;i -= 1){
pos[i] = pos[i + 1];
pos[i][a[i] - 'a'] = i;
}
int ans = 0;
for(int i = 0;i < n;i += 1){
bool ok = 1;
int p = i;
for(auto &x : b){
p = pos[p][x - 'a'];
if(p >= n){
ok = 0;
break;
}
ok &= (p < n);
p += 1;
}
if(ok){
ans += p - i - 1;
}
else ans += n - i;
}
cout << ans;
}
int32_t main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int t = 1;
// cin >> t;
while(t--){
solve();
cout << '\n';
}
return 0;
}
Editor is loading...
Leave a Comment