注意开 LL
还有注意灯的循环顺序和输入顺序不同,循环顺序为红绿黄红绿黄(AC代码中截取绿黄红部分,易于判断)
输入顺序为红黄绿
//循环绿黄红
int main()
{
    ll a,b,c;//红黄绿
    rd(a),rd(b),rd(c);
    int n;rd(n);
    ll sum=0;
    for(int i=0;i<n;++i)
    {
        int x;ll y;rd(x),rd(y);
        if(x==0) sum+=y;
        else
        {
            ll ntim;
            if(x==1) ntim=a-y+b+c;
            else if(x==2) ntim=b-y+c;
            else ntim=c-y;
            ntim+=sum;
            ntim%=(a+b+c);
            if(ntim>=c) sum+=(a+b+c-ntim);
        }
    }
    printf("%lld\n",sum);
    //stop;
    return (0 ^ _ ^ 0);
}