【MX-J3-T1】Seats
题目描述
**注意:题面中所有数组下标都从 $1$ 开始。**
现有一次讲座,有 $a$ 个学生和 $b$ 个老师报名。主办方准备了若干座位,并用一个字符串 $s$ 表示每个座位的类型。对于从左到右的第 $i$ 个座位,$s_i=\texttt{T}$ 表示这是教师座位,$s_i=\texttt{S}$ 表示这是学生座位。
教师座位只能给老师坐,学生座位只能给学生坐,且每个座位只能坐一个人。
然而根据目前的安排方式,并不是所有老师和学生都有自己的座位坐。为此主办方打算进行一些修改。**一次修改**可以选择一个教师座位,将其改成学生座位,或者选择一个学生座位,将其改成教师座位。
请判断至少要多少次修改才能让老师和学生都够坐。特别地,如果无论怎么修改,都无法让所有人有座位,输出 $-1$。
输入输出格式
输入格式
第一行有两个正整数 $a,b$,分别表示学生和老师人数。
第二行有一个字符串,表示主办方每个座位的类型。
输出格式
输出一行一个整数表示答案,见题目描述。
输入输出样例
输入样例 #1
3 4
STTSTTTT
输出样例 #1
1
输入样例 #2
100 100
SSTT
输出样例 #2
-1
输入样例 #3
33 24
SSTTTTSSTSTSTSSTSTSTTTSSSTSSTTSTSSTTTTSTSTTTTSSTTTTTSTTTTSTSSSSS
输出样例 #3
4
说明
**【样例解释 #1】**
有 $3$ 位学生和 $4$ 位老师报名。如果把第 $2$ 个座位调成学生座位,那么学生可以坐第 $1,2,4$ 个座位,教师可以坐第 $3,5,6,7,8$ 个座位中的任意四个。
显然,如果不调整座位,那么学生是不够坐的。
**【样例解释 #2】**
无论如何修改,$100$ 名学生和 $100$ 名老师显然不可能只坐在 $4$ 个座位里,因此输出 $-1$。
**【数据范围】**
本题共 $25$ 个测试点,每个 $4$ 分。设 $n$ 为字符串 $s$ 的字符个数。
|测试点编号|$a,b,n\le$|特殊性质|
|:-:|:-:|:-:|
|$1$|$100$|$a=b=100$|
|$2\sim 8$|$100$|$a+b=n$|
|$9\sim 11$|$100$|$s$ 内全是 `S`|
|$12\sim 14$|$100$|$s$ 内全是 `T`|
|$15\sim 21$|$100$|无特殊性质|
|$22\sim 25$|$10^5$|无特殊性质|
对于全体数据,保证 $1\le a,b,n\le 10^5$,字符串 $s$ 内只有大写字母 `S` 或 `T`。