Official
A - Contest Result Editorial by yuto1115
解説AtCoder をはじめたばかりで何をしたらよいか分からない方は、まずは practice contest の問題A「Welcome to AtCoder」を解いてみてください。基本的な入出力の方法が載っています。
また、プログラミングコンテストの問題に慣れていない方は、AtCoder Beginners Selection の問題をいくつか解いてみることをおすすめします。
以下の処理を実装すれば良いです。
- 入力を受け取る。
- 変数 ans を準備し、\(0\) で初期化する。
- 各 \(i\ (1\leq i \leq M)\) に対して、ans に \(A_{B_i}\) を加算する。
- 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: