#include<stdio.h>
typedef long long ll;
ll f(ll a[],ll b[],ll len)
{
ll ans=0,sum,i,j;
for(i=0;i<len;i++)
{
sum=0;
for(j=b[i];j<=i;j++)
{
sum+=a[j];
}
ans+=sum;
}
return ans;
}
ll a[500005],b[500005],len;
int main()
{
int i;
//本地测试时注意long long类型在本地编译器的输入输出格式
//提交时请使用%lld输入和输出long long类型
while(scanf("%lld",&len)!=EOF)//len<=500000
{
for(i=0;i<len;i++) scanf("%lld",&a[i]);//-1000000000<=a[i]<=1000000000
for(i=0;i<len;i++) scanf("%lld",&b[i]);//0<=b[i]<=i
printf("%lld\n",f(a,b,len));
}
return 0;
}
请优化以上程序。