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

Ngủ gật trong giờ học

Đề bài

Mô tả

Olga đang mơ thấy mình đứng trên một cầu thang có n bậc, đánh số từ 1 (bậc thấp nhất) đến n (bậc cao nhất). Phía trên mỗi bậc có một mũi tên chỉ hướng — U (lên) hoặc D (xuống).

Mỗi giây Olga di chuyển một bước theo hướng của mũi tên ở bậc cô đang đứng tại đầu giây đó. Ngay sau khi cô rời khỏi một bậc, mũi tên trên bậc vừa rời sẽ đổi chiều: U thành DD thành U.

Olga tỉnh dậy ngay khi cô bước ra khỏi cầu thang, tức là khi cô đi xuống từ bậc 1 hoặc đi lên từ bậc n. Bản thân bước đi ra ngoài cũng tốn 1 giây — ví dụ, nếu cô đang ở bậc 1 và mũi tên là D, cô sẽ tỉnh dậy sau đúng 1 giây.

Với mỗi bậc i, hãy xác định giấc mơ kéo dài bao nhiêu giây nếu Olga bắt đầu giấc mơ tại bậc đó. Nếu Olga sẽ không bao giờ rời khỏi cầu thang, hãy in 1.

Dữ liệu vào

  • Dòng thứ nhất chứa số nguyên n — số bậc của cầu thang.
  • Dòng thứ hai chứa xâu s độ dài n gồm các kí tự UD. Kí tự thứ i của s là hướng ban đầu của mũi tên trên bậc thứ i.

Dữ liệu ra

In n số nguyên trên cùng một dòng, cách nhau bởi dấu cách: số thứ i là độ dài giấc mơ khi Olga bắt đầu ở bậc i, hoặc 1 nếu cô không bao giờ ra khỏi cầu thang.

Ràng buộc

  • 1n106
  • s chỉ gồm các kí tự UD.

Ví dụ

Input Output Giải thích
3
UUD
5 6 3 Bắt đầu ở bậc 3 (mũi tên D): đi 321 rồi ra khỏi cầu thang — tổng cộng 3 giây.
10
UUDUDUUDDU
5 12 23 34 36 27 18 11 6 1 Bắt đầu ở bậc 10 (mũi tên U): đi lên một bước là ra ngoài — 1 giây.

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