#P17053. [SGU257] Debt

[SGU257] Debt

题目描述

Murzov 教授准备离开 Burland,但在离开前,他必须偿还所有债务。他分别欠牧师 Popov、理发师 Parkin 和学生 Studnev PPOOSS 个 burcrystal。

使用水晶还债非常简单:一颗小水晶价值 1 个 burcrystal,一颗大水晶价值 2 个 burcrystal。问题是并不存在判断水晶大小的统一标准,因此三位债权人分别对教授的每一颗水晶进行了评价。同一颗水晶在不同债权人眼中可能具有不同的价值。

教授共有 NN 颗水晶。你需要把每颗水晶恰好分给三位债权人中的一位,使每个人收到的水晶在他自己看来总价值不少于教授欠他的债务。允许多还。

请输出任意一种合法分配方案;如果不存在合法方案,输出 no solution

输入格式

第一行包含三个整数 P,O,SP,O,S,分别表示教授欠三位债权人的债务。

第二行包含一个整数 NN,表示水晶数量。

接下来 NN 行,每行包含一个长度为 3 的字符串。三个字符依次表示 Popov、Parkin、Studnev 对该水晶的评价:

  • B 表示该债权人认为它是大水晶,价值为 2;
  • S 表示该债权人认为它是小水晶,价值为 1。

输出格式

若存在合法分配,输出一个长度为 NN 的字符串,不含分隔符。第 ii 个字符表示第 ii 颗水晶的归属:

  • P:分给 Popov;
  • O:分给 Parkin;
  • S:分给 Studnev。

若不存在合法分配,输出:

no solution

数据范围

  • 1P,O,S1051\le P,O,S\le 10^5
  • 1N1051\le N\le 10^5

样例

输入

3 2 4
6
BBS
SSB
BBB
BBS
SSS
BBS

输出

OSPPSS

样例说明

Popov 收到的水晶总价值为 4,Parkin 收到的水晶总价值为 2,Studnev 收到的水晶总价值为 4。

限制

  • 时间限制:0.25 秒;
  • 空间限制:65536 KB。