思路:找到供应不足的点与供应点一一对应,那么路程就是这两个点之间的路程 ,否则接着往前走
#include<bits/stdc++.h>
using namespace std;
int a[305],b[305],n,l,sum,ans;
int main(){
cin>>n;
for(int i=1;i<=n;i++)cin>>a[i];
for(int i=1;i<=n;i++)cin>>b[i];
for(int i=1;i<=n;i++){
if(sum>=0&&sum+b[i]<0)l=a[i];//供应不足
if(sum<0&&sum+b[i]>=0)ans+=(a[i]-l)<<1;//能供应回来
ans+=a[i]-a[i-1];//接着往前走
sum+=b[i];
}
cout<<ans<<endl;
return 0;
}