Bạn được trao một vị trí bảng cho trò chơi cờ vây và di chuyển để chơi. Bạn cần đưa ra liệu di chuyển có hợp pháp hay không, và vị trí hội đồng quản trị mới nếu đó là hợp pháp.
Một lời giải thích ngắn gọn về di chuyển Go: trò chơi bao gồm xen kẽ các mảnh màu đen và trắng ("đá") ở những chỗ trống trên một bảng vuông. Các tập hợp các mảnh có cùng màu được kết nối với nhau (4 chiều) được gọi là các nhóm. Các vị trí trống trên bảng liền kề với một nhóm (cũng là 4 chiều) được coi là "quyền tự do" của nhóm đó. Một nhóm có 0 tự do được bắt giữ (xóa khỏi bảng). Một động thái sẽ khiến nhóm của chính họ bị bắt ("tự sát") là bất hợp pháp, trừ khi họ đang bắt giữ một hoặc nhiều nhóm của đối thủ (đạt được tự do trong quá trình để nó không thực sự bị bắt).
Đối với những người quan tâm, bạn không cần phải đối phó với ko (và superko), tức là bạn có thể cho rằng việc bắt giữ ko là hợp pháp. Nếu bạn không biết điều đó có nghĩa là gì, chỉ cần làm theo các quy tắc trên và nó sẽ ổn thôi.
Đầu vào: một số n trong khoảng từ 2 đến 19 (đã bao gồm) đại diện cho kích thước bảng, theo sau là n dòng của n số từ 0 đến 2 (bao gồm) đại diện cho vị trí bảng, theo sau là 3 số cách nhau bởi khoảng trắng, đại diện cho việc di chuyển. Ở vị trí bảng, 0 có nghĩa là chỗ trống, 1 có nghĩa là đá đen và 2 có nghĩa là đá trắng. Việc di chuyển cho cột, hàng và màu (1 hoặc 2) của đá để đặt. Cột và hàng dựa trên 0, từ 0 đến n-1 (đã bao gồm) và được tính theo thứ tự giống như đầu vào bảng.
Bạn có thể giả định rằng vị trí hội đồng đã cho là hợp pháp (tất cả các nhóm có ít nhất một quyền tự do).
Đầu ra: một dòng chứa 1 hoặc 0 (hoặc đúng / sai nếu bạn thích) nếu di chuyển là hợp pháp hay không, theo sau (chỉ trong trường hợp di chuyển hợp pháp) bởi vị trí bảng mới có cùng định dạng với đầu vào.
Điểm: Số byte của mã nguồn hoàn chỉnh, nhỏ hơn là tốt hơn. Hình phạt bổ sung 20% cho việc sử dụng các ký tự không phải mã ascii và 20% hình phạt bổ sung nếu mã của bạn không thể được kiểm tra trong Linux bằng phần mềm có sẵn miễn phí.
Quy tắc: Không có kết nối mạng và không có thư viện bên thứ 3. Chương trình của bạn nên sử dụng các luồng đầu vào và đầu ra tiêu chuẩn hoặc tương đương tiêu chuẩn cho ngôn ngữ lập trình của bạn.
Ví dụ:
1) Input:
2
10
01
1 0 2
Output:
0
2) Input:
2
10
11
1 0 2
Output:
1
02
00
3) Input:
5
22122
22021
11211
02120
00120
2 1 1
Output:
1
00100
00101
11011
02120
00120
4) Input:
6
000000
011221
121121
122221
011110
000000
4 0 1
Output:
1
000010
011221
121121
122221
011110
000000