CF962B.Students in Railway Carriage
普及-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
There are n consecutive seat places in a railway carriage. Each place is either empty or occupied by a passenger.
The university team for the Olympiad consists of a student-programmers and b student-athletes. Determine the largest number of students from all a+b students, which you can put in the railway carriage so that:
- no student-programmer is sitting next to the student-programmer;
- and no student-athlete is sitting next to the student-athlete.
In the other words, there should not be two consecutive (adjacent) places where two student-athletes or two student-programmers are sitting.
Consider that initially occupied seat places are occupied by jury members (who obviously are not students at all).
铁路车厢中有 n 个连续的座位。每个座位要么为空,要么已被一名乘客占据。
奥林匹克竞赛的大学代表队由 a 名学生程序员和 b 名学生运动员组成。请确定:在满足以下条件的前提下,最多能在车厢中安排多少名来自这全部 a+b 名学生的成员:
- 任意两名学生程序员不能相邻而坐;
- 任意两名学生运动员不能相邻而坐。
换言之,在所有座位中,不能存在两个相邻(即紧挨着)的座位,其上均坐着学生运动员,也不能存在两个相邻的座位,其上均坐着学生程序员。
注意:初始已被占据的座位上坐的是裁判员(显然他们完全不是学生)。
输入格式
The first line contain three integers n, a and b (1≤n≤2⋅105, 0≤a,b≤2⋅105, a+b>0) — total number of seat places in the railway carriage, the number of student-programmers and the number of student-athletes.
The second line contains a string with length n, consisting of characters "." and "*". The dot means that the corresponding place is empty. The asterisk means that the corresponding place is occupied by the jury member.
第一行包含三个整数 n、a 和 b(1≤n≤2⋅105,0≤a,b≤2⋅105,a+b>0)—— 分别表示火车车厢中的总座位数、学生程序员人数和学生运动员人数。
第二行包含一个长度为 n 的字符串,由字符 “.” 和 “*” 组成。其中,“.” 表示对应位置为空座,“*” 表示对应位置被评委占用。
输出格式
Print the largest number of students, which you can put in the railway carriage so that no student-programmer is sitting next to a student-programmer and no student-athlete is sitting next to a student-athlete.
输出最多可以安排在火车车厢中的学生人数,使得任意两名编程学生不相邻,且任意两名运动学生也不相邻。
输入输出样例
输入#1
5 1 1 *...*
输出#1
2
输入#2
6 2 3 *...*.
输出#2
4
输入#3
11 3 10 .*....**.*.
输出#3
7
输入#4
3 2 3 ***
输出#4
0
说明/提示
In the first example you can put all student, for example, in the following way: *.AB*
In the second example you can put four students, for example, in the following way: *BAB*B
In the third example you can put seven students, for example, in the following way: B*ABAB**A*B
The letter A means a student-programmer, and the letter B — student-athlete.
在第一个例子中,你可以将所有学生按如下方式安排:*.AB*
在第二个例子中,你可以安排四名学生,例如按如下方式:*BAB*B
在第三个例子中,你可以安排七名学生,例如按如下方式:B*ABAB**A*B
字母 A 表示编程方向的学生,字母 B 表示体育方向的学生。
输入解题思路,AI测评打分。不知道怎么写?