#include <stdio.h>
#include <stdlib.h>
/*
绿灯时,显示的倒计时不用处理,
红灯倒计时要加上,
黄灯倒计时也要加上,并且黄灯后面是红灯,所以还要加上红灯的总倒计时
*/
struct Item {
int flag; //0,1,2,3表示直接通行或信号灯
int time; //当前 flag对应的时间
};
int main(int argc, char *argv[]) {
int calcu(int lampTimes[], struct Item *p, int n);
int lampTimes[3];
int n,i;
struct Item *p;
int total;
scanf("%d %d %d", lampTimes, lampTimes+1, lampTimes+2);
scanf("%d", &n);
p = (struct Item *)malloc(n * sizeof(struct Item));
for(i=0; i<n; i++) {
scanf("%d %d", &((p+i)->flag), &((p+i)->time));
}
total = calcu(lampTimes, p, n);
printf("%d", total);
free(p);
return 0;
}
int calcu(int lampTimes[], struct Item *p, int n){
int rTime = lampTimes[0];
int yTime = lampTimes[1];
int gTime=lampTimes[2];
int i, flag, total=0;
for (i=0; i<n; i++){
flag = (p+i)->flag;
switch(flag){
case 0://直接通过
total += (p+i)->time;
break;
case 1://红灯
total += (p+i)->time;
break;
case 2://黄灯
total += (p+i)->time + rTime;
break;
case 3://绿灯
//nothing to do
break;
}
}
return total;
}