特殊的大富翁


Submit solution

Points: 100
Time limit: 1.0s
Memory limit: 64M

Author:
Problem type
Allowed languages
C, C++, Java, Python

題目敘述

眾所周知,大富翁的棋盤是會繞圈的,也就是說:如果格子數是 \(n\),那當你從起點走了 \(n\) 步,你又會回到起點。

現在有一個特殊的大富翁,他上面的格子從起點開始依序被編號成 \(1, 2, \dots, n\) 。

當玩家停在每一個格子上時(包含遊戲開始停在第一格上時),他會有兩種選擇:

1. 直接移動到第 \(x_i\) 格

2. 向前移動 \(a_i\) 格

目前 yok 的位置在 \(1\),現在給你 yok 每次停下後的選擇,請幫他找到他最後停在哪一格。

輸入說明

第一行輸入一個正整數 \(n,q\) \((1 \leq n,q \leq 10^5)\),為棋盤上的格子總數及 yok 的選擇次數。

第二行有 \(n\) 個正整數 \(x_1, x_2, \dots, x_n\) \((1 \leq x_i \leq n, x_i \neq i)\),為在第 \(i\) 個格子選擇第一個移動方法會移動到的位置。

第三行有 \(n\) 個正整數 \(a_1, a_2, \dots, a_n\) \((1 \leq a_i \leq 10^9)\),為在第 \(i\) 個位子選擇第二個移動方法向前移動的步數。

第四行有 \(q\) 個正整數 \(t_1, t_2, \dots, t_q\) \((1 \leq t_i \leq 2)\),為在第 \(i\) 次停下後選擇的移動方法。

輸出說明

輸出只有一行,yok 最後停在的格子編號。

範例測資

範例輸入 1
5 2
2 3 4 5 1
10 2 5 8 4
2 1
範例輸出 1
2

提示


Comments

There are no comments at the moment.