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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include <iostream>
#include <cstdio>
#include <fstream>

using namespace std;

    int n,m;
    int szybkosci[500003];
    long long int dzien[500003];
    long long int wysokosc_koszenia[500003];
    long long int wysokosc_pola[500003];
    long long int suma=0;

    //fstream siaout;

int main()
{

    //siaout.open("siaout.txt");
    cin>>n>>m;

    for(int i=0;i<n;i++)
        cin>>szybkosci[i];

    for(int i=0;i<m;i++)
    {
        cin>>dzien[i+1]>>wysokosc_koszenia[i];

    }
    //cout<<dzien[m];
    for(int i=1;i<m+1;i++)
    {
            //cout<<dzien[indeks_dzien]<<endl;
            for(int j=0;j<n;j++)
            {
                wysokosc_pola[j]+=(dzien[i]-dzien[i-1])*szybkosci[j];
                //cout<<wysokosc_pola[j]<<" ";
            }
            //cout<<endl;

            for(int j=0;j<n;j++)
            {
                if(wysokosc_koszenia[i-1]<wysokosc_pola[j])
                {
                   suma+=wysokosc_pola[j]-wysokosc_koszenia[i-1];
                   wysokosc_pola[j]=wysokosc_koszenia[i-1];
                }
                //cout<<wysokosc_pola[j]-wysokosc_koszenia[i-1]<<endl;
                //cout<<wysokosc_koszenia[indeks_dzien]<<endl;

            }
            //cout<<endl;

            //cout<<suma<<endl;
            printf("%lld\n",suma);
            //siaout<<suma<<endl;
            //cout<<"pracuje"<<endl;
            suma=0;
    }

        /*for(int j=0;j<n;j++)
        {
            wysokosc_pola[j]+=szybkosci[j];
        }*/
    //siaout.close();
    //getch();

    return 0;

}