사탕
시간 제한1초메모리 제한128 MB
n개의 병에서 각각 0개부터 m_i개까지 꺼내 총 개수가 a 이상 b 이하가 되는 경우의 수를 2004로 나눈 나머지를 구한다.
문제
존이 사탕이 든 병 개를 가지고 있다. 각 병에는 서로 다른 종류의 사탕이 들어 있다(같은 병에 든 사탕은 모두 같은 종류이고, 다른 병에 든 사탕은 서로 다른 종류이다). 번째 병에는 사탕이 개 들어 있다.
존은 사탕을 전부 합쳐 개 이상 개 이하로 먹으려고 한다. 각 병에서는 개부터 개까지 원하는 만큼 꺼내 먹을 수 있다. 어느 한 병에서라도 꺼낸 사탕의 개수가 다르면 서로 다른 방법으로 센다.
먹는 사탕의 총 개수가 개 이상 개 이하가 되도록 사탕을 고르는 방법의 수를 구하여라. 이 값이 매우 커질 수 있으므로 로 나눈 나머지를 출력한다.
입력
첫째 줄에 정수 , , 가 공백 하나로 구분되어 주어진다(, ). 다음 개의 줄에는 정수가 하나씩 주어지며, 번째 줄에는 번째 병에 든 사탕의 개수 가 주어진다().
출력
존이 사탕을 고를 수 있는 방법의 수를 라고 하자. 첫째 줄에 정수 하나 (를 로 나눈 나머지)를 출력한다.
힌트
예제에서 두 병에는 각각 개와 개의 사탕이 들어 있고, 먹는 총 개수는 개 이상 개 이하여야 한다. 각 방법을 (1번 병에서 꺼낸 개수, 2번 병에서 꺼낸 개수)로 나타내면, 유효한 가지 방법은 다음과 같다.