霧島京子ミッション / paizaOnlineHackathon6
#include <iostream> using namespace std; void Solve(int n) { int t[100+1], m, d; for (int i=0; i<n; ++i) cin >> t[i]; cin >> m; for (int i=0; i<m; ++i) { cin >> d; bool flg[100+1] = {false}; while (d != n-1) { if (d<=0 || n-1<d || flg[d]) break; flg[d] = true; d += t[d]; } cout << (d==n-1? "Yes" : "No") << endl; } } int main(void) { int n; cin >> n; Solve(n); return 0; }
範囲外と既通過を気をつける。ゴールに辿り着けた場合Yes、そうでない場合Noを出力。
〜了〜