Nhảy bước (Task II)


Submit solution

Points: 2 (partial)
Time limit: 1.0s
JAVA11 2.0s
Pypy 3 2.0s
Memory limit: 67M
JAVA11 977M
Pypy 3 977M

Author:
Problem types
Allowed languages
Ada, Assembly, Awk, C, C++, C11, CLANG, CLANGX, Classical, COBOL, Coffee, CSC, D lang, DART, F95, FORTH, Fortrn, GAS32, GO, Haskell, Itercal, Java, kotlin, LEAN, LISP, LUA, MONOVB, Nasm, OCAML, Pascal, Perl, php, PIKE, prolog, Pypy, Python, Ruby 2, RUST, Scala, SCM, SED, SWIFT, TCL, TUR, V8JS, VB, ZIG

Đây là Task II của vấn đề Nhảy bước, các điểm khác biệt so với Task I là \(L\) lớn, bản đồ không có bẫy và bạn chỉ cần kiểm tra xem cách nhảy cho Oiram có tồn tại hay không.

Trong trò chơi \(ABC\), bản đồ là một đường tròn được chia thành \(L\) mốc, các mốc được đánh thứ tự từ \(1\) tới \(L\) theo chiều kim đồng hồ. Ví dụ với \(L = 12\), bản đồ trò chơi là:

Nhân vật Oiram trong trò chỉ nhảy lên được \(f\) - forward bước (xuôi chiều kim đồng hồ) hoặc nhảy về \(b\) - backward bước (ngược chiều kim đồng hồ). Ví dụ với \(L = 12, f = 3, b = 2\), Oiram đang đứng ở vị trí \(1\) thì khi nhảy lên một lần, nhảy xuống một lần vị trí của cậu lần lượt là \(4, 11\).

Cho trước các giá trị \(L, f, b\), vị trí Oiram đang đứng \(s\) - start, vị trí điểm đích \(d\) - destination. Bạn hãy kiểm tra xem có cách nào để Oiram đi từ \(s\) tới \(d\) hay không.

Đầu vào

Dòng đầu chứa số tự nhiên \(t\), số lượng test con.

Mỗi test con gồm \(5\) số nguyên dương: \(L, f, b, s, d\) trên một dòng.

Đầu ra

Với mỗi test con, xuất ra xâu "YES" nếu có một cách nhảy và xâu "NO" trong trường hợp còn lại.

Giới hạn

\(1 \le t \le 100\), \(1 \le f, b, s, d \le L \le 10^9\).

Ví dụ

Đầu vào:

2
10 3 2 7 6
9 3 3 7 6

Đầu ra:

YES
NO
QDUY

Comments

There are no comments at the moment.