Trò chơi bóng

View as PDF

Submit solution

Points: 100
Time limit: 1.0s
Memory limit: 256M
Input: stdin
Output: stdout

Problem type
Allowed languages
C++, Pascal, Python

AliceBanh chơi một trò chơi với n người đứng thành vòng tròn,đánh số từ 1 đến n theo chiều kim đồng hồ.Ban đầu,quả bóng ở người chơi số x.Mỗi lần ném bóng, người chơi sẽ ném bóng một khoảng cách r_i (1 \leq r_i \leq n-1) theo chiều kim đồng hồ hoặc ngược chiều kim đồng hồ.

Chúng ta gọi một chuyển động là việc quả bóng di chuyển từ người chơi này sang người chơi kế tiếp, có thể theo chiều kim đồng hồ hoặc ngược chiều kim đồng hồ. Khoảng cách từ người chơi y_1 đến y_2 theo chiều kim đồng hồ (hay ngược chiều kim đồng hồ) là số bước cần di chuyển để từ y_1 đến y_2.

Ví dụ: với n = 7, khoảng cách theo chiều kim đồng hồ từ người chơi 2 đến người chơi 53, còn khoảng cách ngược chiều kim đồng hồ là 4.

Trò chơi bị gián đoạn sau m lần ném do trời mưa bất ngờ. Khi trời tạnh, các chàng trai lại tụ tập để tiếp tục. Tuy nhiên, không ai nhớ được ai đã có bóng. Hóa ra, Banh nhớ được khoảng cách của mỗi lần ném và hướng của một số lần ném (theo chiều kim đồng hồ hoặc ngược chiều kim đồng hồ).

Alice nhờ bạn giúp anh ấy và dựa trên thông tin từ Bernard, hãy tính toán số lượng người chơi có thể có bóng sau m lần ném.

Input:

  • Dòng đầu tiên của mỗi bộ test chứa ba số nguyên n, m, x (2 \leq n \leq 1000, 1 \leq m \leq 1000, 1 \leq x \leq n) — số lượng người chơi, số lượng lần ném bóng và số của người chơi đã ném bóng đầu tiên.

  • Mỗi dòng tiếp theo có m dòng, chứa thông tin về mỗi lần ném bóng theo thứ tự. Mỗi dòng chứa một số nguyên r_i (1 \leq r_i \leq n - 1) — khoảng cách mà bóng được ném và một ký tự c_i, có thể là '0', '1', hoặc '?':

  • Nếu c_i = '0', thì lần ném thứ i được thực hiện theo chiều kim đồng hồ.

  • Nếu c_i = '1', thì lần ném thứ i được thực hiện ngược chiều kim đồng hồ.
  • Nếu c_i = '?', thì Bernard không nhớ được hướng ném và lần ném thứ i có thể được thực hiện theo chiều kim đồng hồ hoặc ngược chiều kim đồng hồ.

Đảm bảo rằng tổng n \cdot m (n nhân với m) trên tất cả các bộ test không vượt quá 2 \cdot 10^5.

Output:

  • Với mỗi trường hợp kiểm tra, in ra hai dòng:
    • Dòng đầu tiên, in ra số lượng người chơi k (1 ≤ k n ) có thể sở hữu bóng vào cuối trò chơi.
    • Dòng tiếp theo, in ra k số b_i (1 ≤ b_i n ) — số của các người chơi theo thứ tự tăng dần. Tất cả các số phải khác nhau.

Example:
Sample Input 1:

 6 3 2
 2 ?
 2 ?
 2 ?

Sample Output 1:

3
2 4 6

Sample Input 2:

 4 1 1
 2 ?

Sample Output 2:

1
3

Note: Dưới đây là hình minh họa về ba lần ném cho trường hợp thử nghiệm đầu tiên. Các mũi tên biểu thị các hướng ném có thể có. Những người chơi có thể có bóng sau khi ném được tô sáng màu xám.


Comments

There are no comments at the moment.