求助T2
  • 板块学术版
  • 楼主zhang_kevin
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/10/21 13:54
  • 上次更新2023/11/2 12:15:42
查看原帖
求助T2
679961
zhang_kevin楼主2023/10/21 13:54
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 1;
long long n, d, v[N], a[N], Min[N], cnt = 0, km = 0, oil;
int main(){
    //freopen("road.in", "r", stdin);
    //freopen("road.out", "w", stdout);
    cin >> n >> d;
    for(long long i = 1; i <= n - 1; i++){
        cin >> v[i];
    }

    Min[0] = INT_MAX;
    for(long long i = 1; i <= n; i++){
        cin >> a[i];
        Min[i] = min(Min[i-1], a[i]);
    }

    oil = v[1] / d;
    if(v[1] % d != 0) oil++;
    cnt += oil * a[1];
    km += oil * d;

    for(long long i = 2; i <= n; i++){
        if(i == n) break;
        km -= v[i-1];
        long long vst = v[i] - km;
        oil = vst / d;
        if(vst % d != 0) oil++;
        cnt += oil * Min[i];
        km += oil * d;
    }

    cout << cnt << endl;
    return 0;
}

挂了,65分

2023/10/21 13:54
加载中...