分析:
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e6+5;
struct node
{
int x,t,y;
};
void solve()
{
int n,m,mnt,mxt;
cin>>n>>m>>mnt>>mxt;
deque <node> q;
for(int i=1;i<=n;i++)
{
int x;
scanf("%lld",&x);
q.push_front({x,0,1});
}
int tot=0, d=mxt-mnt+1;
for(int i=1;i<=m;i++)
{
int t,k, ans=0;
scanf("%lld%lld",&t,&k);
tot+=t;
int k_tmp = k;
while(k && !q.empty())
{
auto u = q.front(); q.pop_front();
int cnt=u.y;
if(u.y>k)
{
cnt=k;
q.push_front({u.x,u.t,u.y-cnt});
}
ans += ((u.x-mnt-(tot-u.t)%d+d)%d+mnt)*cnt;
k-=cnt;
}
if(k) ans+=mxt*k;
q.push_back({mxt,tot,k_tmp-k});
cout<<ans<<"\n";
}
}
signed main()
{
int T=1;
while(T--) solve();
}