trang chủ / bài tập / fakegears

Bánh răng giả

Đề bài

Mô tả

Một bộ đồ chơi gồm một nút bấm và n bánh răng xếp thành hàng. Mỗi bánh răng có n răng được đánh số từ 0 đến n1 theo chiều ngược kim đồng hồ, và tại mỗi thời điểm có đúng một răng đang ở vị trí hoạt động.

Khi bấm nút một lần, bánh răng thứ nhất quay theo chiều kim đồng hồ, bánh răng thứ hai quay ngược chiều kim đồng hồ, bánh răng thứ ba quay theo chiều kim đồng hồ, và cứ luân phiên như vậy. Mỗi lần quay, răng hoạt động chuyển sang răng kế tiếp theo chiều quay: quay theo chiều kim đồng hồ làm số trên răng hoạt động tăng thêm 1 (theo modulo n), quay ngược chiều kim đồng hồ làm số đó giảm đi 1 (theo modulo n).

Bộ đồ chơi được gọi là thật nếu có thể bấm nút một số lần (có thể là 0 lần) sao cho sau đó dãy số trên các răng hoạt động của các bánh răng từ trái sang phải đúng bằng 0,1,2,,n1.

Cho trạng thái ban đầu của các bánh răng, hãy xác định bộ đồ chơi là thật hay giả.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n: số bánh răng.
  • Dòng thứ hai chứa n số nguyên a1,a2,,an: số trên răng hoạt động của bánh răng thứ i.

Dữ liệu ra

In ra "Yes" nếu bộ đồ chơi là thật, ngược lại in ra "No" (không có dấu nháy).

Ràng buộc

  • 1n1000
  • 0ain1

Ví dụ

Input Output Giải thích
3
1 0 0
Yes Sau lần bấm thứ nhất dãy trở thành 2 2 1, sau lần bấm thứ hai là 0 1 2.
5
4 2 1 4 3
Yes Chỉ cần bấm đúng 1 lần: các bánh răng lẻ tăng 1 thành 0, 2, 4 còn các bánh răng chẵn giảm 1 thành 1, 3.
4
0 2 3 1
No Muốn bánh răng đầu tiên giữ giá trị 0 thì số lần bấm phải chia hết cho 4, nhưng khi đó bánh răng thứ hai vẫn bằng 2 chứ không phải 1.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0