Submission #1369363

#TimeUsernameProblemLanguageResultExecution timeMemory
1369363solution6312Legendary Dango Eater (JOI26_dango)C++17
6 / 100
2596 ms5344 KiB
#include <iostream>
#include <cassert>
using namespace std;
using ll=long long;

const int MN=5e5+13;
int N, Q; ll K;
ll A[MN];

int main()
{
    cin>>N>>Q>>K;
    for (int i=1; i<=N; i++) cin>>A[i];
    while (Q--)
    {
        int L, R; cin>>L>>R;
        ll cur=0, ans=0;
        for (int i=L; i<=R; i++)
        {
            if (i&1)
            {
                cur+=A[i];
                if (cur>=0)
                {
                    ans+=cur/K;
                    cur%=K;
                }
                else cur=0;
            }
            else
            {
                cur-=A[i];
                cur=max(cur, 0ll);
            }
            assert(cur<K);
        }
        cout<<ans<<endl;
    }
    return 0;
}
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...
#Result Execution timeMemoryGrader output
Fetching results...