단백질 식별
시간 제한1초메모리 제한512 MB
불완전한 MS2 실험의 피크들이 주어질 때, 가장 큰 피크를 총 질량으로 하는 P/Q 단백질 중 잡음 피크 수가 최소가 되는 값을 구한다.
문제
단백질은 아미노산이 연결된 사슬이다. 그 서열은 이중 질량 분석(MS2)으로 알아낼 수 있다.
이 문제에서는 다음과 같이 단순화한 상황을 가정한다.
- 단백질은 최대 개의 아미노산이 연결된 사슬이다.
- 아미노산은 와 두 종류만 있다.
- 의 질량은 돌턴, 의 질량은 돌턴이다.
MS2 실험의 결과는 실수의 집합이며, 각 실수를 피크라고 부른다. 실제 단백질의 경우, 이 집합에는 단백질의 모든 prefix와 모든 suffix의 질량(단백질 전체의 질량 포함)이 들어 있으며, 그 밖의 값은 들어 있지 않다. 어떤 단백질과 그 단백질을 뒤집은 것은 정확히 같은 prefix·suffix 질량 집합을 만든다는 점에 유의하라.
알 수 없는 단백질에 대한 실험은 완벽하지 않으므로, 그 결과는 다음을 만족한다.
- 일부 prefix 또는 suffix 질량은 집합에서 빠져 있을 수 있다.
- 집합에는 단백질의 어떤 prefix나 suffix 질량에도 해당하지 않는 피크가 들어 있을 수 있다. 이러한 피크를 노이즈 피크라고 부른다.
- 모든 피크는 양수이다.
- 가장 큰 피크는 단백질 전체의 질량과 같다.
- prefix 또는 suffix 질량에 해당하는 피크는 정확한 값이다.
실험 결과가 주어졌을 때, 전체 질량이 가장 큰 피크와 같은, 와 로 이루어진(길이는 최대 ) 모든 단백질을 생각하자. 그러한 단백질에 대해, 노이즈 피크란 그 단백질의 어떤 prefix·suffix 질량과도 같지 않은 입력 피크를 말한다. 노이즈 피크 수의 최솟값을 구하라.
입력
첫째 줄에 피크의 수 이 주어진다. ()
다음 개의 줄에 각각 하나의 피크 가 주어진다.
입력은 항상 위의 모든 조건을 만족하며, 모든 피크는 서로 다르다. 각 피크는 소수점 아래 최대 자리까지 주어진다.
출력
전체 질량이 가장 큰 피크와 같은, 와 로 이루어진(길이는 최대 ) 모든 단백질에 대해, 노이즈 피크 수의 최솟값을 정수 하나로 출력한다.