公式

A - お店の売上計算 / Store Sales Calculation 解説 by MMNMM


初心者の方へ

この問題は、\(N\) 個の商品の価格と \(M\) 件の購入記録を正しく読み取り、それぞれの購入記録に対して適切に価格を計算することで解くことができます。

実装例は以下のようになります。

#include <iostream>
#include <vector>
using namespace std;

int main() {
    int N, M, K;
    cin >> N >> M >> K;

    vector<int> A(N);
    for (int& a : A) {
        cin >> a;
    }

    // 合計金額を求める
    long ans = 0;
    for (int i = 0; i < M; ++i) { // それぞれの購入記録について
        int S, P, D;
        cin >> S >> P >> D;
        --P; // 0-indexed にする
        int price = A[P]; // 価格は基本 A[P] 円
        if (S == 1) { // 会員なら
            price = price - min(price, K); // K 円減らす
        }

        ans += static_cast<long>(D) * price; // 購入個数をかけて足す
    }

    cout << ans << endl; // 答えを出力
    return 0;
}
N, M, K = map(int, input().split())
A = list(map(int, input().split()))

# 合計金額を求める
ans = 0
for _ in range(M): # それぞれの購入記録について
    S, P, D = map(int, input().split())
    P -= 1 # 0-indexed にする
    price = A[P] # 価格は基本 A[P] 円
    if S == 1: # 会員なら
        price = price - min(price, K) # K 円減らす

    ans += D * price # 購入個数をかけて足す

print(ans) # 答えを出力

投稿日時:
最終更新: