아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

외부 도움 고용

시간 제한4초메모리 제한1024 MB

요약
개발자가 중간에 퇴사하는 상황에서, 각 컨설턴트 요청마다 현재 개발자들로 그 컨설턴트의 코드 줄 수와 버그 수를 모두 맞출 수 있는지 판단합니다.
난이도

어려움10점 중 8점

유형
기하, 분할 정복
정답자
아직 제출이 없습니다

문제

어떤 대형 소프트웨어 개발 회사에는 nn명의 개발자가 있습니다. 각 코더의 생산성은 시간당 작성하는 코드 줄 수와 시간당 수정하는 버그 수, 이 두 가지 지표로 측정됩니다.

프로젝트가 필요하면 담당 매니저에게 프로그래머 작업 시간 tt 맨아워가 예산으로 배정됩니다. 매니저는 총합이 tt 시간을 넘지 않는 범위에서 여러 코더를 프로젝트에 배치할 수 있습니다. 예를 들어 프로그래머가 세 명이라면, t1+t2+t3≤tt_1 + t_2 + t_3 \le t를 만족하는 한 매니저는 각자의 작업 시간으로 음이 아닌 실수 t1t_1, t2t_2, t3t_3 시간을 배정할 수 있습니다. 세 프로그래머가 시간당 각각 l1l_1, l2l_2, l3l_3 줄의 코드를 작성한다면, 프로젝트에서 작성되는 코드는 총 t1⋅l1+t2⋅l2+t3⋅l3t_1 \cdot l_1 + t_2 \cdot l_2 + t_3 \cdot l_3 줄입니다. 마찬가지로 시간당 버그 수정 수가 b1b_1, b2b_2, b3b_3라면 총 t1⋅b1+t2⋅b2+t3⋅b3t_1 \cdot b_1 + t_2 \cdot b_2 + t_3 \cdot b_3 개의 버그가 수정됩니다.

회사는 채용 동결 상태이므로 새 코더를 뽑지 않습니다. 다만 매니저는 프로젝트를 외부 컨설턴트에게 맡겨 외부 도움을 받을 수 있습니다. 이는 사내에서 같은 효율로 프로젝트를 수행할 수 없을 때에만 허용됩니다. 컨설턴트가 tt 시간 동안 ℓ\ell 줄의 코드를 작성하고 bb 개의 버그를 수정한다고 합시다. 기존 코더들의 어떤 배분으로든 tt 시간 이내에 최소 ℓ\ell 줄의 코드를 작성하고 최소 bb 개의 버그를 수정할 수 있다면, 매니저는 이 컨설턴트를 고용할 수 없습니다. 이 규칙은 그 코더들이 프로젝트에 시간을 낼 수 있는지, 또는 이미 다른 프로젝트로 바쁜지와 관계없이 적용됩니다.

동결 기간에도 직원이 회사를 그만두는 경우가 있습니다. 컨설턴트 고용 요청과 직원 퇴사가 시간 순서대로 적힌 목록이 주어질 때, 각 요청 중 승인되는 것을 찾으세요.

입력

첫 줄에 처음 회사에 있는 코더의 수 nn (0≤n≤2⋅1050 \leq n \leq 2 \cdot 10^5)이 주어집니다. 코더는 11부터 nn까지 번호가 매겨집니다. 이어지는 nn개의 줄에는 ii번째 코더가 시간당 작성하는 코드 줄 수 ℓi\ell_i와 시간당 수정하는 버그 수 fif_i (1≤ℓi,fi≤1081 \leq \ell_i, f_i \leq 10^8)가 정수 두 개로 주어집니다.

다음 줄에는 이벤트 수 ee (1≤e≤1051 \leq e \leq 10^5)가 주어집니다. 이어지는 ee개의 줄은 다음 두 형식 중 하나이며, 시간 순서대로 나열됩니다.

  • "c tt ℓ\ell ff" (1≤t≤1001 \leq t \leq 100, 1≤ℓ,f≤1081 \leq \ell, f \leq 10^8): tt 시간짜리 프로젝트에 컨설턴트를 고용해 달라는 요청입니다. 이 컨설턴트는 그 tt 시간 동안 ℓ\ell 줄의 코드를 작성하고 ff 개의 버그를 수정합니다.
  • "q ii" (1≤i≤n1 \leq i \leq n): 코더 ii가 회사를 그만두었습니다.

같은 코더가 두 번 이상 그만두는 일은 없습니다.

출력

컨설턴트 고용 요청마다 승인되면 "yes", 승인되지 않으면 "no"를 출력하세요.

예제2

  1. 예제 1

    입력
    4
    200 100
    100 200
    100 100
    200 200
    5
    c 10 2000 2000
    c 5 750 750
    q 4
    c 3 600 600
    c 10 1500 1500
    
    예상 출력
    no
    no
    yes
    no
    
  2. 예제 2

    입력
    8
    400 300
    300 200
    300 400
    200 300
    500 500
    100 500
    100 100
    500 100
    12
    c 4 1611 1601
    c 3 602 601
    c 2 399 795
    c 1 395 206
    q 7
    q 6
    q 5
    q 4
    c 4 1611 1601
    c 3 602 601
    c 2 399 795
    c 1 395 206
    
    예상 출력
    no
    no
    no
    no
    yes
    no
    no
    no