hdu 6047

来源:互联网 发布:mac怎么更新阿里旺旺 编辑:程序博客网 时间:2024/06/06 07:05
#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<string>#include<algorithm>#include<set>#include<vector>using namespace std;typedef long long ll;const ll mod=1e9+7;const int maxn=25*1e4+5;ll a[maxn],b[maxn],maxm[maxn];int main(){    ll i,n,ans,tp;    while(scanf("%lld",&n)!=EOF)    {        for(i=1;i<=n;i++)        {            scanf("%lld",&tp);            a[i]=tp-i;        }        for(i=1;i<=n;i++)            scanf("%lld",b+i);        maxm[n]=a[n];        for(i=n-1;i;i--)            maxm[i]=max(maxm[i+1],a[i]);        sort(b+1,b+n+1);        ans=maxm[b[1]];        tp=ans-n-1;        for(i=2;i<=n;i++)            ans=(ans+max(tp,maxm[b[i]]))%mod;        printf("%lld\n",ans);    }    return 0;}

原创粉丝点击