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

Cow-libi 2

Đề bài

Mô tả

N con bò ngồi quanh đống lửa trại thành một vòng tròn. Mỗi con bò thuộc về bác John hoặc bác Nhoj: bò của bác John luôn nói thật, còn bò của bác Nhoj luôn nói dối.

Từng con bò được thẩm vấn riêng. Con bò thứ i khai hai điều:

  • li: chủ của con bò ngồi ngay bên trái nó (liJ nếu nó khai đó là bò của bác John, là N nếu nó khai đó là bò của bác Nhoj).
  • ri: chủ của con bò ngồi ngay bên phải nó, quy ước tương tự.

Bò của bác John khai đúng chủ của hai con bò bên cạnh. Bò của bác Nhoj khai sai cả hai, nghĩa là nó luôn nói ngược lại chủ thật sự của con bò bên cạnh.

Hãy cho biết có tồn tại cách xếp N con bò thành vòng tròn và gán chủ cho từng con sao cho mọi lời khai đều đúng với quy tắc trên hay không, và nếu có thì chỉ ra một cách.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên TC, là số bộ dữ liệu và chế độ xuất kết quả.
  • Mỗi bộ dữ liệu gồm ba dòng:
    • Dòng 1: số nguyên N.
    • Dòng 2: xâu l1l2lN gồm N ký tự J hoặc N.
    • Dòng 3: xâu r1r2rN gồm N ký tự J hoặc N.

Dữ liệu ra

Với mỗi bộ dữ liệu, in ra YES nếu tồn tại cách xếp thoả mãn, ngược lại in ra NO.

Nếu C=1 và câu trả lời là YES, in thêm hai dòng:

  • Dòng thứ nhất: hoán vị p1,p2,,pN của 1,2,,N mô tả vòng tròn, trong đó bò pi+1 ngồi ngay bên phải bò pi với mọi i<N, còn bò p1 ngồi ngay bên phải bò pN.
  • Dòng thứ hai: xâu b1b2bN gồm N ký tự, với biJ nếu bò i thuộc về bác John và là N nếu bò i thuộc về bác Nhoj.

Nếu có nhiều cách xếp thoả mãn, in ra một cách bất kỳ.

Ràng buộc

  • 1T1000
  • C{0,1}
  • 2N105
  • Tổng N trên tất cả các bộ dữ liệu không vượt quá 5×105

Ví dụ

Input Output Giải thích
6 0
3
JJJ
JJJ
4
JJNJ
NJJJ
6
NJNJNJ
JNNJNJ
4
NNNN
NNNN
3
NNN
NNN
5
JJNNJ
NJNJJ
YES
NO
NO
YES
NO
YES
C=0 nên chỉ cần trả lời có hoặc không. Bộ 1: cho cả ba con cùng thuộc bác John, mọi lời khai J đều đúng. Bộ 4: bốn con khai cả hai bên cạnh khác chủ với mình, xếp xen kẽ hai bác là được. Bộ 5: ba con cùng khai như vậy, nhưng vòng tròn lẻ thì không thể xen kẽ.
2 1
4
NNNN
NNNN
5
JJNNJ
NJNJJ
YES
1 2 3 4
JNJN
YES
2 5 1 3 4
JJNJJ
Bộ 1 là bộ 4 của ví dụ trước, nay phải in ra cách xếp. Bộ 2: vòng tròn theo thứ tự 2,5,1,3,4; chẳng hạn bò 1 thuộc bác John, bên trái nó là bò 5 cùng chủ nên l1= J, bên phải nó là bò 3 khác chủ nên r1= N.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.400 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0