trang chủ / đề bài / linetrans

Di chuyển trên đường thẳng

Đề bài

Mô tả

Có một dãy gồm n ô được đánh số từ 1 đến n, xếp thành một hàng ngang.

Người ta xây dựng n−1 cổng dịch chuyển. Cổng thứ i (với 1≤i≤n−1) nối ô i với ô i+ai, và chỉ cho phép đi theo một chiều: từ ô i sang ô i+ai (không thể đi ngược lại). Điều kiện 1≤ai≤n−i đảm bảo mọi cổng đều dẫn tới một ô hợp lệ trong dãy.

Bạn đang đứng ở ô 1 và muốn tới ô t. Tại mỗi ô i (với i<n) bạn chỉ có một lựa chọn duy nhất là dùng cổng thứ i để nhảy tới ô i+ai. Hãy xác định xem bạn có thể tới được ô t hay không.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên n và t — số ô và chỉ số ô đích.
  • Dòng thứ hai chứa n−1 số nguyên a1,a2,…,an−1.

Dữ liệu ra

In ra YES nếu có thể tới được ô t, ngược lại in ra NO.

Ràng buộc

  • 3≤n≤3×104
  • 2≤t≤n
  • 1≤ai≤n−i

Ví dụ

Input Output Giải thích
8 4
1 2 1 2 1 2 1
YES Các ô đi qua lần lượt là 1,2,4; tới được ô 4.
8 5
1 2 1 2 1 1 1
NO Các ô có thể tới là 1,2,4,6,7,8; không đi qua ô 5.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0