注意开 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);
} 
京公网安备 11010502036488号