Official

A - Contest Result Editorial by yuto1115

解説

AtCoder をはじめたばかりで何をしたらよいか分からない方は、まずは practice contest の問題A「Welcome to AtCoder」を解いてみてください。基本的な入出力の方法が載っています。
また、プログラミングコンテストの問題に慣れていない方は、AtCoder Beginners Selection の問題をいくつか解いてみることをおすすめします。


以下の処理を実装すれば良いです。

  1. 入力を受け取る。
  2. 変数 ans を準備し、\(0\) で初期化する。
  3. \(i\ (1\leq i \leq M)\) に対して、ans に \(A_{B_i}\) を加算する。
  4. ans の値を出力する。

具体的な実装方法は以下の実装例 (C++, Python) をご参照ください。 多くのプログラミング言語では配列の添字が \(0\) から始まるため、実装方法によっては入力で受け取った \(B_i\) から \(1\) を引く必要があることに注意してください。

C++

#include<bits/stdc++.h>

using namespace std;

int main() {
    int n, m;
    cin >> n >> m;
    vector<int> a(n), b(m);
    for (int i = 0; i < n; i++) cin >> a[i];
    for (int i = 0; i < m; i++) {
        cin >> b[i];
        --b[i];
    }
    int ans = 0;
    for (int i = 0; i < m; i++) ans += a[b[i]];
    cout << ans << endl;
}

Python

n, m = map(int, input().split())
a = list(map(int, input().split()))
b = list(map(int, input().split()))

ans = 0
for i in range(0, m):
    ans += a[b[i] - 1]
print(ans)

posted:
last update: