만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

물약 구매

면접 대비

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

요약
각 포션의 가격과 한 포션을 살 때 다른 포션의 가격이 얼마나 깎이는지가 주어질 때, 모든 포션을 사는 데 드는 최소 비용을 구합니다.
난이도

보통10점 중 4점

유형
비트 연산, 동적 계획법
정답자
아직 제출이 없습니다

문제

준겸이는 모험가이다. 모험을 떠나려면 철저한 사전 준비를 갖춰야 한다.

준겸이는 모험을 떠나기 전에 NN종류의 물약을 모두 사려고 한다. 물약 상점에 들른 준겸이는 각 물약에 1번부터 NN번까지 번호가 매겨져 있다는 것을 알았다. 그런데 상점에서 오늘 특별한 이벤트를 하고 있었다. 특정 물약을 사면 다른 물약 몇 개가 할인된다는 것이다.

ii번째 물약의 원래 가격은 동전 cic_i개이다. ii번째 물약을 사면 다른 물약 pip_i종류의 가격이 내려간다.

할인은 중첩된다. 예를 들어 1번 물약을 사면 3번 물약이 동전 1개만큼 할인되고, 2번 물약을 사면 3번 물약이 동전 2개만큼 할인된다고 하자. 두 물약을 모두 산 뒤에 3번 물약을 사면 동전 3개만큼 할인을 받는다. 다만 물약 가격은 0 이하로 내려가지 않는다. 예를 들어 원래 가격이 동전 5개인 물약이 동전 4개를 넘는 만큼 할인되더라도 가격은 동전 1개가 된다.

준겸이는 신이 나서 물약을 사려다가, 물약을 사는 순서가 중요하다는 사실을 깨달았다. 준겸이가 물약을 모두 가장 싸게 샀을 때의 비용을 구하여라.

입력

첫째 줄에 물약의 종류 NN이 주어진다.

둘째 줄에 물약의 가격 cic_i가 공백을 사이에 두고 주어진다 (1≤i≤N1 \le i \le N).

다음 줄부터 물약 할인 정보가 NN개 주어진다. ii번째 할인 정보는 다음과 같다 (1≤i≤N1 \le i \le N).

pip_i가 주어진다. 다음 pip_i개의 줄에는 물약 번호 aja_j와 할인되는 가격 djd_j가 주어진다. 이는 ii번 물약을 사고 나면 물약 aja_j가 동전 djd_j개만큼 할인된다는 뜻이다.

출력

첫째 줄에 물약을 가장 싸게 샀을 때 필요한 동전의 개수를 출력한다.

제한

  • 2≤N≤102 \le N \le 10
  • 1≤ci≤1 0001 \le c_i \le 1\,000
  • 0≤pi≤N−10 \le p_i \le N-1
  • 각 ii에 대해, 모든 aja_j는 서로 다르고 aj≠ia_j \neq i이다
  • 1≤dj≤1 0001 \le d_j \le 1\,000

예제1

  1. 예제 1

    입력
    4
    10 15 20 25
    2
    3 10
    2 20
    0
    1
    4 10
    1
    1 10
    
    예상 출력
    36