从int改成long long多了30分
不知道是思路问题还是细节问题
minm是最便宜的加油站的位置,oil是剩余的油,way是从当前站到下一个更便宜的站的路程。
代码
#include<bits/stdc++.h>
using namespace std;
long long n,d,minm,tot,way,oil,v[100000],a[100001];
int main()
{
cin>>n>>d;
for(int i=1;i<=n-1;++i) cin>>v[i];
for(int i=1;i<=n;++i) cin>>a[i];
minm=1;
for(int i=2;i<=n;++i)
{
way+=v[i-1];
if(i==n||a[i]<a[minm])
{
if(oil>=way) oil-=way;
else
{
tot+=ceil(1.0*(way-oil)/d)*a[minm];
oil=(way-oil)%d;
}
way=0;
minm=i;
}
}
cout<<tot;
return 0;
}
请你帮帮我,谢谢!