配列の中に配列型式の添字を入れるような処理(A[B[i]]
のような)を書けるようになろう!
問題概要
あるコンテストでは 問が出題され、配点はそれぞれ 点であった。
参加者のすぬけ君は、このうちの 問 問を解いた。
すぬけ君の得点はいくらか?
制約
考えたこと
すぬけ君の解いた 問それぞれについての得点を考えよう。すぬけ君の解いた 番目の問題は B[i] - 1
(C++ では配列を 0 始まりで考える)であるから、その得点は
A[B[i] - 1]
となる。この値を について足していけばよい。
コード
#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]; int res = 0; for (int i = 0; i < M; i++) res += A[B[i] - 1]; cout << res << endl; }