비트 변환 비용
시간 제한1초메모리 제한256 MB
각 비트의 시작값과 목표값, 비용이 주어질 때, 비트 i를 뒤집으면 뒤집은 뒤 값이 1인 모든 비트 비용의 합을 지불한다. 목표 상태에 도달하는 최소 총비용을 구한다.
문제
번부터 번까지 번호가 붙은 비트 개가 있다. 비트 의 처음 값은 또는 인 이고, 비용은 이다.
연산 한 번은 비트 를 하나 골라 그 값을 뒤집는다. 은 이 되고, 은 이 된다. 이 연산의 가격은 뒤집은 뒤에 값이 인 모든 비트 의 를 더한 값이다. 비트 가 이 되었다면 그 비트의 비용 도 이 합에 들어간다.
어떤 비트든 원하는 순서로 몇 번이든 연산할 수 있다. 모든 에 대해 비트 의 값을 로 만드는 가격의 합 중 최솟값을 구하여라.
입력
첫째 줄에 비트의 개수 이 주어진다. ()
둘째 줄에 각 비트의 비용 이 주어진다. ()
셋째 줄에 처음 값을 나타내는 길이 짜리 문자열 이 주어진다.
넷째 줄에 목표 값을 나타내는 길이 짜리 문자열 이 주어진다.
출력
가격의 합 중 최솟값을 첫째 줄에 출력한다.