AT_joisc2016_f.トイレ
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
JOI会场附近有两个厕所,一个是女性专用的,另外一个是男女混用的。女性可以用两种厕所,但是男性只能用男女混用的。
比赛结束后,有2N个选手排成一列上厕所。排队的人有男的和女的。他们将按照下列规则排队上厕所。
-
如果当前是一个女生在队头,那么选择空的那个厕所进入。若两边都是空的,优先进入女性专用厕所。
-
如果当前是一个男生在队头,他会遵守以下规则。
-
如果男女公用厕所是空的,他就会去男女共用的厕所。
-
如果男女公用厕所不是空的但是女性专用厕所是空的,他会请队伍里面最前面的一个女生去女性专用厕所。
-
所有的选手都会用1分钟上厕所。你可以忽略选手出入厕所的时间。
但是这样可能不会在N分钟之内上完厕所,于是我们希望能够改变选手排队的次序,进而保证所有选手能在N分钟之内上完厕所。
排完次序之后,我们定义一个选手的不满度。
- 一个选手的不满度定义为排序之前在这个选手的后面但是排序后在该选手的前面的人数。
不满度与排队时进入厕所次序无关。
我们希望能够适当地排序后使得所有人能在N分钟之内上完厕所,并且不满度最小。
我们给定2N个选手的初始排队顺序,确定是否能够在N分钟内上完厕所。如果可以的话,写出一个程序,找到选手的不满度的最小值。
输入格式
-
第一行,输入一个N。表示有2N个人排序。
-
第二行,输入一个M。
-
接下来M行,有一个字符串Si和整数Ki,并且以空格符间隔。这些数据表示用Ki个Si依次接在后面。
我们以此定义出一个字符串X(即为上述初始排队队列)。X左起第j(j≤2N)个字符代表这个选手的性别。若这个字符是M,代表这个选手是男性,若这个字符是F,那么这个选手是女性。
输出格式
输出选手最小的可能不满度值。但是如果无论如何排序都无法在N分钟以内上完厕所,输出-1
说明/提示
输入数据满足以下数据。
-
1≤N≤1018。
-
1≤M≤100000。
-
1≤Ki≤2N(1≤i≤M)。
-
1≤∣Si∣≤2N(1≤i≤M),其中∣Si∣代表Si的长度。
-
Si(1≤i≤M)的所有字符都是
M或者F。 -
通过Ki和Si构造的字符串X,满足X长度为2N。
任务
子任务1[14分]
满足以下条件。
-
N≤10。
-
M=1。
-
Ki=1。
子任务2[22分]
满足以下条件。
-
N≤100000。
-
M=1。
-
Ki=1。
子任务3[64分]
没有追加条件。
测试样例
输入1
6
1
FFFMMMMMMFFF 1
输出1
2
重排序列之后为FMMFFMMMMFFF。
输入2
6
1
MMFFMMMMFFMF 1
输出2
-1
无论如何排序都无法完成在N分钟之内完成。
输入3
6
1
MFFFMFMMFFFM 1
输出3
0
输出4
6
4
M 1
F 2
FM 2
MFFFM 1
输出4
0
输入样例3和4构造的字符串X是一样的,重排序列之后为MFFFMFMMFFFM。
输入解题思路,AI测评打分。不知道怎么写?