카드를 무작위 묶음으로 내려놓으며 맨 위 카드가 뒤집혀 있으면 묶음 전체를 뒤집을 때, 그림이 아래로 놓이는 카드 수의 기댓값을 구한다.
보통7확률동적 계획법조합론아직 제출이 없습니다시간 제한2초메모리 제한512 MB표도르는 여행을 자주 다니고, 그동안 세계 곳곳에서 그림엽서를 모았다. 엽서마다 한쪽 면에는 그림이 있고, 반대 면에는 주소와 글을 적는 칸이 있다.
집에서 파티를 열던 표도르는 엽서를 모두 탁자에 늘어놓아 손님에게 보여주기로 했다. 엽서는 처음에 한 무더기로 표도르의 손에 들려 있고, 그중 일부는 그림이 아래를 향한 채 거꾸로 들어 있다. 엽서를 한 장씩 확인해 뒤집는 대신, 표도르는 다음 과정을 반복한다.
k장을 통째로 뒤집으면 그 안의 엽서가 모두 반대로 놓인다. 그림이 위를 향했던 엽서는 아래를 향하고, 아래를 향했던 엽서는 위를 향한다. 매번 고르는 k는 앞선 선택과 독립이다.
과정이 끝난 뒤 탁자 위에서 그림이 아래를 향한 엽서 개수의 기댓값을 구하라.
첫 줄에 C와 W로만 이루어진 문자열 s가 주어진다. s의 i번째 문자는 처음 무더기의 위에서 i번째 엽서를 뜻한다. C는 그림이 위를 향한 엽서, W는 그림이 아래를 향한 엽서다. s의 길이는 1 이상 200000 이하다.
탁자 위에서 그림이 아래를 향한 엽서 개수의 기댓값을 소수점 아래 여섯째 자리까지 반올림해 한 줄에 출력한다. 뒤에 붙는 0도 생략하지 않고 소수점 아래 여섯 자리를 모두 출력한다.