1 solutions
-
0
C++ :
#include<bits/stdc++.h> using namespace std; long long n,d,v[100000],a[100000],ans; int main(){ freopen("road.in","r",stdin); freopen("road.out","w",stdout); cin>>n>>d; for(int i=1;i<n;i++) { cin >> v[i]; //区间 } for(int i=1;i<=n;i++) cin>>a[i]; //油价 long long dis = 0; long long lowp = a[1]; for(int i = 1;i<n;i++){ //对区间进行循环 if(dis < v[i]){ //要加油 int x;//每个区间要加的油油多少升 x = ceil(1.0*(v[i] - dis) / d); //最少加的油 dis += d*x; //这么多油行驶的公里数 ans += x*lowp; } dis -= v[i]; // 算出下一个区间的起点 lowp = min(lowp,a[i+1]); } cout<<ans; }
- 1
Information
- ID
- 9135
- Time
- 1000ms
- Memory
- 512MiB
- Difficulty
- (None)
- Tags
- # Submissions
- 0
- Accepted
- 0
- Uploaded By