(* Common part *)
let (|>) x f = f x
let identity = fun x -> x
let flip f y x = f x y
let readInStr _
= Scanf.scanf
"%d " identity
let readIntLn _
= Scanf.scanf
"%d\n" identity
(* Programme *)
let numofC s c =
let rec numof' i acc =
try let i = index_from s i c
in numof' i (acc+1)
with Not_found -> acc
in (numof' 0 0)
let main () =
let k = readIntLn()
in let str
= Array.make k
(Scanf.scanf
"%s\n" identity
) in let n = readIntLn ()
in let ic
= Array.make n
(Scanf.scanf
"%d %c\n" (function x y
-> (x,y
))) |> fast_sort
(function x y
->(fst x
) - (fst y
)) String.iter
( fun c
-> add tbl
(1+ (find tbl c
)) str
for i = n-1 to 0 do
let num
= find str
(snd ic
.(i
)) in (str.(a/num)).[a mod num]<- " "
done;
)) str
;;
main()
b3BlbiBBcnJheTs7Cm9wZW4gU3RyaW5nCigqCUNvbW1vbiBwYXJ0CSopCmxldCAofD4pIHggZiA9IGYgeApsZXQgaWRlbnRpdHkgPSBmdW4geCAtPiB4CgpsZXQgZmxpcCBmIHkgeCA9IGYgeCB5CiAKbGV0IHJlYWRJblN0ciBfID0gU2NhbmYuc2NhbmYgIiVkICIgaWRlbnRpdHkKbGV0IHJlYWRJbnRMbiBfID0gU2NhbmYuc2NhbmYgIiVkXG4iIGlkZW50aXR5CigqCVByb2dyYW1tZQkqKQpsZXQgbnVtb2ZDIHMgYyA9CiAgIGxldCByZWMgbnVtb2YnIGkgYWNjID0KICAgdHJ5IGxldCBpID0gaW5kZXhfZnJvbSBzIGkgYwogICAgICAgaW4gbnVtb2YnIGkgKGFjYysxKQogICB3aXRoIE5vdF9mb3VuZCAtPiBhY2MKICAgaW4gIChudW1vZicgMCAwKQpsZXQgbWFpbiAoKSA9CglsZXQgayA9IHJlYWRJbnRMbigpCglpbiBsZXQgc3RyID0gQXJyYXkubWFrZSBrIChTY2FuZi5zY2FuZiAiJXNcbiIgaWRlbnRpdHkpCglpbiBsZXQgbiA9IHJlYWRJbnRMbiAoKQoJaW4gbGV0IGljID0gQXJyYXkubWFrZSBuIChTY2FuZi5zY2FuZiAiJWQgJWNcbiIgKGZ1bmN0aW9uIHggeSAtPiAoeCx5KSkpIHw+IGZhc3Rfc29ydChmdW5jdGlvbiB4IHktPihmc3QgeCkgLSAoZnN0IHkpKQoJaW4gbGV0IHRibCA9IEhhc2h0YmwuY3JlYXRlIGsgaW4KCQlTdHJpbmcuaXRlciAoIGZ1biBjIC0+IGFkZCB0YmwgKDErIChmaW5kIHRibCBjKSkgc3RyIAoJCWZvciBpID0gbi0xIHRvIDAgZG8KCQkJbGV0IGEgPSBmc3QgaWMuKGkpIGluCgkJCWxldCBudW0gPSBmaW5kIHN0ciAoc25kIGljLihpKSkgaW4KCQkJIChzdHIuKGEvbnVtKSkuW2EgbW9kIG51bV08LSAiICIKCQlkb25lOwoJCUFycmF5Lml0ZXIgKFN0cmluZy5pdGVyIChmdW5jdGlvbiBjLT4KCQkJaWYgYyA8PiAiICIgdGhlbiBwcmludF9jaGFyIGMKCSAJKSkgc3RyIAo7OwptYWluKCkK