Logo
(追記) (追記ここまで)

8832번 - Reszty 다국어

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 128 MB14000.000%

문제

Hektor bardzo lubi zadania programistyczne związane z problemem wydawania reszty, czy też ogólnie konstruowaniem sum pieniędzy przy użyciu określonych nominałów. Jakiś czas temu zauważył, że wiele zadań ma proste rozwiązania w sytuacji, w której każdy kolejny nominał jest wielokrotnością poprzedniego.

Spróbuj rozwiązać następujący problem - znając wartości kolejnych nominałów i mając określoną liczbę banknotów każdego z nich, ile różnych kwot potrafimy uzyskać?

Będziemy rozważać tylko zestawy nominałów, w których każdy kolejny nominał jest wielokrotnością poprzedniego.

"Kwotę da się uzyskać" wtedy i tylko wtedy, kiedy istnieje podzbiór posiadanych banknotów o wartości sumującej się do danej kwoty.

Ponieważ liczba osiągalnych kwot może być całkiem duża, należy wypisać jej resztę z dzielenia przez 109 + 7.

입력

W pierwszej linii wejścia znajduje się liczba zestawów testowych Z ( 1 <= Z <= 10 ). Następnie opisywane są kolejne zestawy:

Pierwsza linia zawiera liczbę naturalną N

/advanced/langs/en.js" type="text/javascript"> ( 1 <= N <= 1000) - liczbę nominałów.

Druga linia zawiera N liczb naturalnych, i-ta z nich to xi ( 1 <= xi<= 109 ) - liczba banknotów i-tego nominału.

Trzecia linia zawiera N-1 liczb naturalnych, i-ta z nich to di (1 <= di <= 109), co oznacza, że wartość i+1 nominału = di * wartość i-tego nominału. Pierwszy z nominałów ma wartość 1.

출력

Dla każdego przypadku testowego wypisz liczbę osiągalnych kwot (modulo 109 + 7).

제한

예제 입력 1

2
3 
1 1 1 
2 3 
2 
2 2 
2

예제 출력 1

8
7

힌트

출처

Contest > Spot > SpringSpot 2010 3-1번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /