Dây đèn đẹp

Đề bài

Mô tả

Cho một dây đèn gồm n bóng đèn xếp thành hàng. Mỗi bóng có một trong ba màu: đỏ (R), xanh lá (G) hoặc xanh dương (B). Màu của bóng thứ isi.

Bạn được phép tô lại một số bóng (đổi màu hiện tại của bóng đó sang một màu khác) sao cho dây đèn trở nên đẹp.

Một dây đèn được gọi là đẹp nếu hai bóng bất kỳ có cùng màu thì khoảng cách giữa chúng chia hết cho 3. Nói cách khác, nếu dây đèn sau khi tô lại là t, thì với mọi cặp i,jti=tj phải có |ij|mod3=0.

Trong tất cả các cách tô lại để dây đèn trở nên đẹp, hãy chọn cách có số bóng phải tô lại nhỏ nhất. Nếu có nhiều đáp án tối ưu, in ra một đáp án bất kỳ.

Dữ liệu vào

  • Dòng đầu chứa số nguyên n: số bóng đèn.
  • Dòng thứ hai chứa xâu s gồm n ký tự thuộc {R, G, B}: màu ban đầu của các bóng.

Dữ liệu ra

  • Dòng đầu in số nguyên r: số bóng ít nhất cần tô lại.
  • Dòng thứ hai in xâu t độ dài n: một dây đèn đẹp thu được từ dây đèn ban đầu với đúng r lần tô lại. Nếu có nhiều đáp án, in ra bất kỳ.

Ràng buộc

  • 1n2·105
  • s chỉ gồm các ký tự R, G, B.

Ví dụ

Input Output Giải thích
7
RGBGRBB
3
RGBRGBR
Tô lại 3 bóng (vị trí 4, 6, 7) để được RGBRGBR, một dây đèn đẹp. Không thể làm với ít hơn 3 lần tô.
3
BRB
1
GRB
Hai bóng B ở vị trí 1 và 3 cách nhau khoảng cách 2 (không chia hết cho 3) nên BRB chưa đẹp. Tô lại 1 bóng thành GRB là tối ưu.

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