외부 도움 고용
시간 제한4초메모리 제한1024 MB
개발자가 중간에 퇴사하는 상황에서, 각 컨설턴트 요청마다 현재 개발자들로 그 컨설턴트의 코드 줄 수와 버그 수를 모두 맞출 수 있는지 판단합니다.
문제
어떤 대형 소프트웨어 개발 회사에는 명의 개발자가 있습니다. 각 코더의 생산성은 시간당 작성하는 코드 줄 수와 시간당 수정하는 버그 수, 이 두 가지 지표로 측정됩니다.
프로젝트가 필요하면 담당 매니저에게 프로그래머 작업 시간 맨아워가 예산으로 배정됩니다. 매니저는 총합이 시간을 넘지 않는 범위에서 여러 코더를 프로젝트에 배치할 수 있습니다. 예를 들어 프로그래머가 세 명이라면, 를 만족하는 한 매니저는 각자의 작업 시간으로 음이 아닌 실수 , , 시간을 배정할 수 있습니다. 세 프로그래머가 시간당 각각 , , 줄의 코드를 작성한다면, 프로젝트에서 작성되는 코드는 총 줄입니다. 마찬가지로 시간당 버그 수정 수가 , , 라면 총 개의 버그가 수정됩니다.
회사는 채용 동결 상태이므로 새 코더를 뽑지 않습니다. 다만 매니저는 프로젝트를 외부 컨설턴트에게 맡겨 외부 도움을 받을 수 있습니다. 이는 사내에서 같은 효율로 프로젝트를 수행할 수 없을 때에만 허용됩니다. 컨설턴트가 시간 동안 줄의 코드를 작성하고 개의 버그를 수정한다고 합시다. 기존 코더들의 어떤 배분으로든 시간 이내에 최소 줄의 코드를 작성하고 최소 개의 버그를 수정할 수 있다면, 매니저는 이 컨설턴트를 고용할 수 없습니다. 이 규칙은 그 코더들이 프로젝트에 시간을 낼 수 있는지, 또는 이미 다른 프로젝트로 바쁜지와 관계없이 적용됩니다.
동결 기간에도 직원이 회사를 그만두는 경우가 있습니다. 컨설턴트 고용 요청과 직원 퇴사가 시간 순서대로 적힌 목록이 주어질 때, 각 요청 중 승인되는 것을 찾으세요.
입력
첫 줄에 처음 회사에 있는 코더의 수 ()이 주어집니다. 코더는 부터 까지 번호가 매겨집니다. 이어지는 개의 줄에는 번째 코더가 시간당 작성하는 코드 줄 수 와 시간당 수정하는 버그 수 ()가 정수 두 개로 주어집니다.
다음 줄에는 이벤트 수 ()가 주어집니다. 이어지는 개의 줄은 다음 두 형식 중 하나이며, 시간 순서대로 나열됩니다.
- "
c" (, ): 시간짜리 프로젝트에 컨설턴트를 고용해 달라는 요청입니다. 이 컨설턴트는 그 시간 동안 줄의 코드를 작성하고 개의 버그를 수정합니다. - "
q" (): 코더 가 회사를 그만두었습니다.
같은 코더가 두 번 이상 그만두는 일은 없습니다.
출력
컨설턴트 고용 요청마다 승인되면 "yes", 승인되지 않으면 "no"를 출력하세요.