P17047 [NWERC 2021] 挑袜子 / Knitpicking
题目背景
译自 [Northwestern Europe Regional Contest (NWERC) 2021](http://2021.nwerc.eu) Problem K。
原题许可协议为 CC BY-SA。
题目描述
Kattis 的袜子抽屉里有许多双漂亮、暖和、适合冬天穿的针织袜。这些袜子有各种颜色和类型,并且全部混在了一起。每天早晨,Kattis 都需要挑出两只相配的袜子。
为了找到相配的袜子,她只是不断从抽屉里随机拿出单只袜子,直到拿到一双相配的袜子为止。这可能会花很长时间,例如当她一直抽到右脚袜,却没有抽到匹配的左脚袜时。她需要一直抽多少只袜子,才能保证拿到一双可以穿的袜子?
输入格式
输入包含:
- 一行一个整数 $n$($1 \leq n \leq 1\,000$),表示相同袜子组的数量。
- 接下来 $n$ 行,每行描述一组相同的袜子,包含以下内容:
- 一个字符串 $i$,表示这一组袜子的类型。类型 $i$ 由 $1$ 到 $20$ 个小写英文字母组成。类型相同的袜子在穿搭意义上被认为是相配的。
- 一个字符串 $j$,表示这一组袜子的适配脚型,取值为 `left`、`right` 或 `any`,分别表示适合左脚、适合右脚或左右脚都适合。
- 一个整数 $k$($1 \leq k \leq 1\,000$),表示抽屉中该类型且该适配脚型的袜子数量。
对于给定的一种袜子类型和一种适配脚型,在输入中最多出现一次。
输出格式
输出 Kattis 为了保证拿到一双相配袜子而至少需要抽出的袜子数量。如果根本不可能拿到相配的一双袜子,输出 `impossible`。
说明/提示
【数据规模与约定】
对于所有数据,$1 \leq n \leq 1\,000$;类型字符串长度在 $1$ 到 $20$ 之间,只包含小写英文字母;适配脚型为 `left`、`right` 或 `any`;$1 \leq k \leq 1\,000$;同一类型同一适配脚型最多出现一次。