1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#include <iostream>

using namespace std;

int main()
{
    int ary, sierp;
    cin >> ary >> sierp;
    int * wzrost =new int [ary];
    int * toCat =new int [ary];
    for(int i=0;i<ary;i++)
    {
        toCat[i]=0;
        cin >> wzrost[i];
    }
    long long int * dni= new long long int [sierp];
    long long int * maxWys=new long long int [sierp];

    long long int sum;

    for(int i=0; i<sierp;i++)
    {
        cin >> dni[i]>> maxWys[i];
        sum=0;
        for(int j=0;j<ary;j++)
        {
            toCat[j]+=wzrost[j]*(dni[i]-(i>0?dni[i-1]:0));
            if(toCat[j]-maxWys[i]>0)
            {
                sum+=toCat[j]-maxWys[i];
                toCat[j]=maxWys[i];
            }
        }
        cout << sum << endl;
    }
    return 0;
}