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
#include <cstdio>
#include <vector>

int main()
{
    std::vector<long long> pola;
    std::vector<long long> wzrost;
    long long powierzchnia, koszen, poprzednieKoszenie = 0, dzien, wysokosc, skoszono = 0;

    scanf("%lld %lld", &powierzchnia, &koszen);

    for (int i=0; i<powierzchnia;++i)
    {
        pola.push_back(0);
        scanf("%lld", &wysokosc);
        wzrost.push_back(wysokosc);
    }

    while (koszen--)
    {
        skoszono = 0;
        scanf("%lld %lld", &dzien, &wysokosc);
        for (int i=0;i<powierzchnia;++i)
        {
            pola[i] += wzrost[i]*(dzien-poprzednieKoszenie);
            fprintf(stderr, "· %lld\n", pola[i]);
            if (pola[i] > wysokosc)
            {
                skoszono += pola[i]-wysokosc;
                pola[i] = wysokosc;
            }
        }
        poprzednieKoszenie = dzien;
        printf("%lld\n", skoszono);
    }
}