해결한 사람
0
명
정답률
0.00
%
시간 제한
2000
ms
메모리 제한
245
MB
철도 객차에는 n개의 좌석이 연속으로 있다. 각 좌석은 비어 있거나 승객이 앉아 있다.
올림피아드에 참가하는 대학 팀은 a명의 학생 프로그래머와 b명의 학생 운동선수로 구성된다. 전체 a+b명의 학생 중 다음 조건을 만족하도록 철도 객차에 앉힐 수 있는 학생 수의 최댓값을 구한다.
다시 말해, 두 학생 운동선수가 앉아 있거나 두 학생 프로그래머가 앉아 있는 연속한(인접한) 두 좌석이 있어서는 안 된다.
처음부터 차지된 좌석에는 심사위원이 앉아 있다고 간주한다(심사위원은 당연히 학생이 전혀 아니다).
첫 번째 줄에는 정수 n, a, b (1 ≤ n ≤ 2⋅, 0 ≤ a, b ≤ 2⋅, a + b > 0)이 주어진다. 각각 철도 객차의 전체 좌석 수, 학생 프로그래머 수, 학생 운동선수 수를 나타낸다.
두 번째 줄에는 길이가 n이고 문자 "."와 "*"로 구성된 문자열이 주어진다. 마침표는 해당 좌석이 비어 있음을 의미한다. 별표는 해당 좌석에 심사위원이 앉아 있음을 의미한다.
no 학생 프로그래머가 학생 프로그래머 옆에 앉아 있고 no 학생 운동선수가 학생 운동선수 옆에 앉아 있도록 철도 객차에 앉힐 수 있는 학생 수의 최댓값을 출력한다.
11 3 10
.*....**.*.
7
5 1 1
*...*
2
3 2 3
***
0
첫 번째 예제에서는 모든 학생을 앉힐 수 있다. 예를 들어 다음과 같이 앉힐 수 있다: .AB
두 번째 예제에서는 네 명의 학생을 앉힐 수 있다. 예를 들어 다음과 같이 앉힐 수 있다: BABB
세 번째 예제에서는 일곱 명의 학생을 앉힐 수 있다. 예를 들어 다음과 같이 앉힐 수 있다: BABAB**AB
문자 A는 학생 프로그래머를 의미하고, 문자 B는 학생 운동선수를 의미한다.