Thứ Sáu, 13 tháng 5, 2022

SIM C++

#include <bits/stdc++.h>
using namespace std;
#define ll long long
string a,b;
int f[26][1000003],m,n;
void nhap()
{
    getline(cin,a);
    m=a.size();a='0'+a;
    getline(cin,b);
    n=b.size();b='0'+b;

}

void dem()
{
    for (int c=0;c<=25;c++){
        for (int i=1;i<=m;i++){
            if (int(a[i]-'a')==c) f[c][i]=f[c][i-1]+1;
            else f[c][i]=f[c][i-1];
        //    cout<<f[c][i]<<" ";
        }
      //  cout<<endl;
    }
}

void xuli()
{
    ll res=0;
    for(int i=1;i<=n;i++)
    {
        int u=max(1,i+m-n);
        int v=min(i,m);
        //cout<<i<<" "<<u<<" "<<v<<endl;
        res=res+f[b[i]-'a'][v]-f[b[i]-'a'][u-1];
    }
    cout<<res;
}

int main()
{
    freopen("sim.inp","r",stdin);
    freopen("sim.out","w",stdout);
    nhap();
    dem();
    xuli();
}

Không có nhận xét nào:

Đăng nhận xét

Lưu ý: Chỉ thành viên của blog này mới được đăng nhận xét.