答:
找到问题所在啦,首先数组越界,而且数组完全没有必要,下面的while循环也没有必要,占用太多的资源了。。。。当时脑子瓦特了,附上通过代码
#include <iostream>
using namespace std;
typedef long long ll;
ll toPositive(ll num, ll cycle)
{
while(num < 0)
{
num += cycle;
}
return num;
}
int main()
{
ll r, y, g;
cin >> r >> y >> g;
const ll cycle = r+y+g;
ll n;
cin >> n;
ll sum = 0;
for(ll i = 0; i < n; i++)
{
ll k, t;
cin >> k >> t;
if(0 != k)
{
ll flag;
switch(k)
{
case 1 : flag = 0; break;
case 2 : flag = r; break;
case 3 : flag = r+y; break;
default : return 0;
}
ll index = toPositive(sum-t-flag, cycle) % cycle;
if(index < g)
t =0;
else
t = cycle-index;
}
sum += t;
}
cout << sum << endl;
return 0;
}