けんちょんの競プロ精進記録

競プロの精進記録や小ネタを書いていきます

AtCoder ABC 241 A - Digit Machine (7Q, 灰色, 100 点)

「グラフ」の基礎になるような、配列上のシミュレーションの問題。

問題概要

整数  a_{0}, a_{1}, \dots, a_{9} が与えられる。

このとき、ボタンを押すと、画面の数値  k ( 0 \le k \le 9) が  a_{k} に変わる。

最初の数値が 0 であるとき、ボタンを 3 回押すと、どんな数値に変わるか?

考えたこと

まず、最初にボタンを押すと、数値 0 は a[0] に変わる。

次にボタンを押すと、数値 a[0] は、a[a[0]] に変わる。

最後にボタンを押すと、数値 a[a[0]] は、a[a[a[0]]] に変わる。

よって、a[a[a[0]]] の値を出力すればよい。

コード

#include <bits/stdc++.h>
using namespace std;

int main() {
    vector<int> a(10);
    for (int i = 0; i < 10; ++i) cin >> a[i];
    
    cout << a[a[a[0]]] << endl;
}