思路:找到供应不足的点与供应点一一对应,那么路程就是这两个点之间的路程 s2s*2,否则接着往前走

#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;
}