Đặt Tên Công Ty

Đề bài

Mô tả

Oleg và Igor cùng đặt tên cho một công ty. Tên công ty gồm n kí tự. Mỗi người sở hữu một đa tập (multiset) gồm n chữ cái tiếng Anh thường (có thể chứa nhiều bản sao của cùng một kí tự, hai đa tập có thể khác nhau).

Ban đầu, tên công ty là chuỗi gồm n dấu hỏi ?. Oleg và Igor luân phiên thực hiện lượt đi, Oleg đi trước. Trong mỗi lượt, người chơi chọn một kí tự c thuộc đa tập của mình, thay thế một dấu hỏi bất kì trong tên công ty bằng c, rồi bỏ một bản sao của c khỏi đa tập của mình. Trò chơi kết thúc khi tất cả các dấu hỏi đã được thay thế.

Oleg muốn tên công ty nhỏ nhất theo thứ tự từ điển, còn Igor muốn tên công ty lớn nhất theo thứ tự từ điển. Hãy xác định tên công ty thu được khi cả hai người đều chơi tối ưu.

Dữ liệu vào

  • Dòng đầu chứa chuỗi s có độ dài n gồm các chữ cái tiếng Anh thường — đa tập của Oleg.
  • Dòng thứ hai chứa chuỗi t có độ dài n gồm các chữ cái tiếng Anh thường — đa tập của Igor.

Dữ liệu ra

In ra một dòng duy nhất chứa chuỗi độ dài n — tên công ty cuối cùng khi cả hai chơi tối ưu.

Ràng buộc

  • 1n3·105
  • |s|=|t|=n
  • s,t chỉ chứa các chữ cái tiếng Anh thường.

Ví dụ

Input Output Giải thích
tinkoff
zscoder
fzfsirk Oleg đặt f đầu tiên, Igor đặt z ngay sau, tiếp tục tối ưu cho đến hết.
xxxxxx
xxxxxx
xxxxxx Cả hai chỉ có x, dù chơi thế nào kết quả vẫn là xxxxxx.
ioi
imo
ioi Oleg đặt i ở vị trí 1, Igor đặt o ở vị trí 2, Oleg đặt i ở vị trí 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