프로그램 명: coci_program
제한시간: 5 초

Mirko is trying to debug a piece of his code. First he creates an array of N integers and fills it with zeros. Then he repeatedly calls the following procedure (he is such a good coder he coded it in both C++ and Pascal):

void something( int jump ) {
   int i = 0;
   while( i < N ) {
      seq[i] = seq[i] + 1;
      i = i + jump;
   }
}

procedure something( jump: longint );
var i : longint;
begin
   i := 0;
   while i < N do
   begin
      seq[i] := seq[i] + 1;
      i := i + jump;
   end;
end;
As you can see, this procedure increases by one all elements in the array whose indices are divisible by jump.

Mirko calls the procedure exactly K times, using the sequence X1 X2 X3... Xk as arguments.

After this, Mirko has a list of Q special parts of the array he needs to check to verify that his code is working as it should be. Each of this parts is defined by two numbers, L and R (L ≤ R) the left and right bound of the special part. To check the code, Mirko must compute the sum of all elements of seq between and including L and R. In other words seq[L] + seq[L+1] + seq[L+2] + ... + seq[R]. Since he needs to know the answer in advance in order to check it, he asked you to help him.

입력

출력

The output should contain exactly Q lines. The i th line should contain the sum of elements seq[Li] + seq[Li+1] + seq[Li+2] + ... + seq[Ri].

입출력 예

입력

10 4
1 1 2 1
3
0 9
2 6
7 7

출력

35
18
3

입력

11 3
3 7 10
3
0 10
2 6
7 7

출력

8
2
1

입력

1000000 6
12 3 21 436 2 19
2
12 16124
692 29021

출력

16422
28874
Sample 1. description: The procedure is called with arguments 1, 1, 2, 1. After that the array contains values {4, 3, 4, 3, 4, 3, 4, 3, 4, 3}. Sum of indices 2 to 6 (inclusive) is 4+3+4+3+4 = 18.

Sample 2. description: The array is {3, 0, 0, 1, 0, 0, 1, 1, 0, 1, 1}

출처:coci 2009-2010 contest5

[질/답] [제출 현황] [푼 후(0)]
[ 채 점 ] [홈으로]  [뒤 로]