Tô Màu RBS Hai Màu

Đề bài

Mô tả

Một xâu chỉ gồm các ký tự "(" và ")" được gọi là xâu ngoặc. Xâu ngoặc được gọi là đúng (regular bracket sequence, viết tắt RBS) nếu có thể chèn thêm các ký tự "+" và "1" vào để thu được một biểu thức số học hợp lệ. Ví dụ "", "(())" và "()()" là các RBS, còn ")(" và "(()" thì không.

Trong một RBS, mỗi dấu ngoặc mở được ghép với đúng một dấu ngoặc đóng. Độ sâu lồng nhau của một RBS là số lớn nhất các cặp ngoặc lồng vào nhau: cặp thứ 2 nằm trong cặp thứ 1, cặp thứ 3 nằm trong cặp thứ 2, và cứ như vậy. Ví dụ độ sâu của "" là 0, của "()()()" là 1, và của "()((())())" là 3.

Cho một RBS s có độ dài chẵn n. Bạn cần tô màu mỗi dấu ngoặc của s bằng một trong hai màu: đỏ hoặc xanh. Xâu r gồm các dấu ngoặc màu đỏ (giữ nguyên thứ tự trong s) phải là một RBS, và xâu b gồm các dấu ngoặc màu xanh cũng phải là một RBS. Một trong hai xâu có thể rỗng. Không được đổi thứ tự các ký tự, và mỗi dấu ngoặc đều phải được tô màu.

Trong tất cả các cách tô hợp lệ, hãy chọn cách sao cho giá trị lớn nhất giữa độ sâu của r và độ sâu của b là nhỏ nhất. Nếu có nhiều đáp án, in ra bất kỳ đáp án nào.

Dữ liệu vào

  • Dòng đầu chứa số nguyên chẵn n: độ dài của s.
  • Dòng thứ hai chứa RBS s có độ dài n.

Dữ liệu ra

In ra một xâu t độ dài n gồm các ký tự "0" và "1". Nếu ti=0 thì ký tự si thuộc về r (màu đỏ), ngược lại ti=1 thì si thuộc về b (màu xanh).

Ràng buộc

  • 2n2·105
  • n chẵn
  • s là một RBS.

Ví dụ

Input Output Giải thích
2
()
00 Tô cả hai ngoặc màu đỏ: r= "()", b= "". Kết quả là max(1,0)=1.
4
(())
0110 r= "()" (vị trí 1 và 4), b= "()" (vị trí 2 và 3). Độ sâu của cả hai đều là 1, kết quả là 1. Đây là giá trị nhỏ nhất có thể vì s có độ sâu 2.
10
((()())())
0100001110 Một cách tô đạt độ sâu lớn nhất bằng 2, tối ưu vì s có độ sâu 3.

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