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

Phòng nối băng chuyền

Đề bài

Mô tả

n căn phòng được đánh số từ 0 đến n1 xếp thành một vòng tròn, mỗi phòng có một con rắn. Các phòng được nối với nhau bởi n băng chuyền: băng chuyền thứ i nối phòng i và phòng (i+1)modn. Như vậy các cặp phòng 01, 12, ..., n2n1, n10 được nối với nhau.

Băng chuyền thứ i đang ở một trong ba trạng thái:

  • Nếu quay theo chiều kim đồng hồ, rắn chỉ có thể đi từ phòng i sang phòng (i+1)modn.
  • Nếu quay ngược chiều kim đồng hồ, rắn chỉ có thể đi từ phòng (i+1)modn sang phòng i.
  • Nếu tắt, rắn có thể đi theo cả hai chiều.

Mỗi con rắn muốn rời phòng của mình rồi sau đó quay trở lại. Một phòng được gọi là quay-về-được nếu con rắn trong phòng đó có thể rời khỏi phòng và sau đó quay trở lại chính phòng đó bằng cách di chuyển qua các băng chuyền. Hãy đếm số phòng quay-về-được.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t: số bộ test.
  • Với mỗi bộ test:
    • Dòng đầu chứa số nguyên n: số phòng.
    • Dòng sau chứa xâu s độ dài n gồm các ký tự >, <, -:
      • si= >: băng chuyền thứ i quay theo chiều kim đồng hồ.
      • si= <: băng chuyền thứ i quay ngược chiều kim đồng hồ.
      • si= -: băng chuyền thứ i tắt.

Dữ liệu ra

Với mỗi bộ test, in ra một dòng chứa số phòng quay-về-được.

Ràng buộc

  • 1t1000
  • 2n300000
  • Tổng của n trên tất cả các bộ test không vượt quá 300000.

Ví dụ

Input Output Giải thích
4
4
-><-
5
>>>>>
3
<--
2
<>
3
5
3
0
Test 1: mọi phòng đều quay-về-được trừ phòng 2, vì rắn ở phòng 2 bị kẹt (băng chuyền 1 chỉ cho vào theo chiều kim đồng hồ, băng chuyền 2 chỉ cho ra ngược chiều). Test 2: mọi phòng quay-về-được nhờ đi vòng quanh theo chuỗi băng chuyền cùng chiều kim đồng hồ. Test 4: không phòng nào quay-về-được.

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