\[ \let\oldlor\lor \renewcommand{\lor}{\; \oldlor \;} \let\oldland\land \renewcommand{\land}{\; \oldland \;} \renewcommand{\set}[1]{\{\, #1 \,\}} \renewcommand{\given}{\,\mid\,} \renewcommand{\abs}[1]{\lvert #1 \rvert} \renewcommand{\divs}{\!\;\mid\;\!} \renewcommand{\ndivs}{\!\;\nmid\;\!} \renewcommand{\betw}[3][1]{#1 \leq #2 \leq #3} \renewcommand{\mod}[1]{\ (\mathrm{mod}\ #1)} \renewcommand{\floor}[1]{\left \lfloor #1 \right \rfloor} \renewcommand{\ceil}[1]{\left \lceil #1 \right \rceil} \renewcommand{\t}[1]{\texttt{#1}} \renewcommand{\fori}[2][i]{\text{for } #1 = 0, 1, \dots, #2} \renewcommand{\x}[1]{\text{#1}} \renewcommand\concat{\mathbin{+\mkern-10mu+}} \DeclareMathOperator*{\CONCAT}{\concat} \DeclareMathOperator*{\SCC}{\|} \]
CodeForces 500A - New Year Transportation
View on CodeForces

This is quite a straight-forward problem, but I chose to solve it in a more general way for C++ and Python just to show some of the quicks in submitting Python code with recursion. We are given integers $n, t$, with $3 \leq n \leq 3 \times 10^4$ and $2 \leq t \leq n$.

The second line has $n - 1$ integers, each $a_i$ for all $1 \leq i \leq n - 1$. At index $i$, we can jump forward $a_i$. Starting from index $0$, we want to know if it is possible to get to $t - 1$ (0-based). This can be done linearly, just follow the jumps from $0$ until $p \geq t - 1$, and if $p$ reaches $t - 1$ exactly, print YES otherwise NO (where $p$ is the position, initially $0$).

Or, you can model the problem as finding connected components using iterative search such as depth-first search, keeping track of which nodes have been visited. Since the search starts from only $0$, the target will be in our connected component once the search completes.

For Python, you may notice that this connected component approach gets a runtime error ( that is, if you remove the threading and setrecursionlimit settings from the code below; code shown is accepted ), even with a correct implementation. The recursion limit for Python is quite low by default, but we can adjust it in a number of ways for CodeForces. One way is to use threading.stack_size for the stack size and sys.setrecursionlimit for the recursion depth. You will notice memory usage increase significantly for this approach on CodeForces. There are other tweaks you can do (search CodeForces forums for more information on this topic).

Although we got it to work this time, some problems just cannot be solved in time with Python. In those cases, you'll need to fallback on something else. Usually that means either C, C++, or Java.

For JavaScript, we use the "smarter" approach without the use of DFS traversal (it is a simple problem, after all). The code you see at the bottom is boilerplate to make the submission usable by CodeForces online judging system.

Links

CodeForces

1A Theatre Square
4A Watermelon
25A IQ test
50A Domino piling
58A Chat room
59A Word
69A Young Physicist
71A Way Too Long Words
96A Football
112A Petya and Strings
118A String Task
131A cAPS lOCK
158A Next Round
189A Cut Ribbon
230B T-primes
231A Team
263A Beautiful Matrix
281A Word Capitalization
282A Bit++
318A Even Odds
339A Helpful Maths
339B Xenia and Ringroad
455A Boredom
459B Pashmak and Flowers
474B Worms
479A Expression
486A Calculating Function
489B BerSU Ball
489C Given Length and Sum of Digits...
492B Vanya and Lanterns
500A New Year Transportation
507B Amr and Pins
513A Game
520B Two Buttons
550A Two Substrings
580A Kefa and First Steps
742A Arpa's hard exam and Mehrdad's naive cheat
766B Mahmoud and a Triangle
935A Fafa and his Company
977B Two-gram
977D Divide by three, multiply by two
996A Hit the Lottery
1097A Gennady and a Card Game
1108A Two distinct points
1154A Restoring Three Numbers

UVa

230 Borrowers
543 Goldbach's Conjecture
900 Brick Wall Patterns
10047 The Monocycle
10140 Prime Distance
10165 Stone Game
10338 Mischievous Children
10394 Twin Primes
10892 LCM Cardinality