ガソリンスタンド


#include <iostream>
using namespace std;
int main(){
    long long price = 0;
    long long cityCnt; cin >> cityCnt;
    long long distance[cityCnt-1];
    for(int i = 0; i < cityCnt-1; i++){
        cin >> distance[i];
    }
    long long oilPrice[cityCnt];
    for(int i = 0; i < cityCnt; i++){
        cin >> oilPrice[i];
    }
    long long cnt = 0; long long minPrice = oilPrice[0];
    price += minPrice*distance[cnt];

    for(int i = 1; i < cityCnt-1; i++){
        if(minPrice > oilPrice[i]){
            minPrice = oilPrice[i];
        }
        cnt++;
        price += minPrice * distance[cnt];
        if(cnt == cityCnt - 2){
            break;
        }
    }
    cout << price << endl;
    return 0;
}
  • 変数&関数
    long long price:合計価格
    long long citycnt:都市数
    long long distance[citycnt-1]:都市間の距離
    long long oil Price[Citycnt]:都市ごとのガソリン価格
    long long cnt:通過するガソリンスタンド数
    long long minPrice:最小値
  • アルゴリズム
    1)油の価格がminPriceよりも小さい場合はminPriceに交換し、距離と乗じた価格を価格に加算する.
    =>これは説明を必要としないGRADYアルゴリズム問題
  • である.
  • で学んだこと
    x...
  • 残念と感じ
    今何か問題があったら、まずタイプ範囲に注意して、それから使い捨ての練習をします.