Baekjoon #13305

Baekjoon #13305

1개의 풀이 · C++

문제 원문 보기 ↗

SOLUTION INFO

C++ · main.cpp

main.cpp
#include<bits/stdc++.h>

using namespace std;
typedef long long ll;

vector<ll> cost, dis, prefix;

int main(){
    ios::sync_with_stdio(false);
    cin.tie(0);
    
    int N; cin >> N;
    cost.resize(N);
    dis.resize(N - 1);
    prefix.resize(N);
    for(int i=0;i<N-1;i++) cin >> dis[i];
    for(int i=0;i<N;i++) {
        prefix[i + 1] = prefix[i] + dis[i];
        cin >> cost[i];
    }
    int R = 0;
    ll answer = 0;
    for(int i=0;i<N-1;){
        while(R < N && cost[i] <= cost[R]) R++;
        if(R == N) --R;
        answer += cost[i] * (prefix[R] - prefix[i]);
        i = R;
    }
    cout << answer;

    return 0;
}

SOLUTION DESCRIPTION

풀이 설명

등록된 풀이 설명이 없습니다.