竞赛讨论区 > 后面两个样例为啥过不了啊?
头像
&🐠
发布于 2020-07-24 16:09
+ 关注

后面两个样例为啥过不了啊?

#include <bits/stdc++.h>
//#include <string>
//#include <iostream>
//#include <stdlib.h>
using namespace std;
typedef long long ll;
int min(ll a,ll b)
{
    if(a<=b)return a;
    else return b;
}
int main()
{
    string s;
    string t;
    ll i=0;
    cin>>s;
    cin>>t;
    ll next[200005]={0};
    ll ans=0;
    while(i<s.size())
    {
        //string s1;
        //s1=s.substr(i,s.size()-1);
        //s1=s;
         ll j=i,z=0,k=0;
         while(s[j]==t[k]&&j<s.size()&&k<t.size())
         {
             j++;
             k++;
             z++;
         }
        next[i]=z;
        i++;
    }
    for(int i=0;i<s.size();i++)
    {
        ans+=min(next[i],t.size()-1);
        if(s[i+next[i]]<t[next[i]])
            ans+=s.size()-next[i]-i;
    }
    cout<<ans<<endl;
}

全部评论

(0) 回帖
加载中...
话题 回帖

本文相关内容

等你来战

查看全部

热门推荐