蒟蒻求助,样例都过不了
查看原帖
蒟蒻求助,样例都过不了
1432988
Yeonjun_0913楼主2024/9/24 19:27
#include <iostream>
using namespace std;

typedef long long ll;
ll n,d,oil[100005],dis[100005];
ll cost,sum;

int main (){
    cin >> n >> d;
    for (int i=1;i<n;i++){
        cin >> dis[i];
    }
    for (int i=1;i<=n;i++){
        cin >> oil[i];
    }
    for (int i=1;i<n;i++){
        if (oil[i]>=oil[i+1]){
            if (sum>=dis[i]){
                sum-=dis[i];
                i++;
                continue;
            }else {
                int tmp=0;
                int x=dis[i]-sum;
                sum=0;
                if (x%d){
                    tmp=x/d+1;
                }else{
                    tmp=x/d;
                }
                cost+=tmp*oil[i];
                sum+=tmp*d;
                sum-=x;
            }
        }else if (oil[i]<oil[i+1]){
            int tmp=0,sumDis=0;
            int j=i+1;
            for (;j<=n;j++){
                sumDis+=dis[j];
                if (oil[j]<=oil[i]){
                    break;
                }
            }
            if (sum>=sumDis){
                sum-=sumDis;
                i=j;
                continue;
            }else{
                int x=sumDis-sum;
                sum=0;
                if (x%d){
                    tmp=x/d+1;
                }else{
                    tmp=x/d;
                }
                cost+=tmp*oil[i];
                sum+=tmp*d;
                sum-=x;
                i=j;
            }
        }
    }
    cout << cost;
    return 0;
}

2024/9/24 19:27
加载中...