|
#include <iostream>
#include <vector>
using namespace std;
const int maxn=1000;
struct group
  {
int h,m,t;
};
group team[maxn];
int main()
  {
int n2,n4,n6;
while(scanf("%d%d%d",&n2,&n4,&n6)!=EOF)
 {
if(n2==0&&n4==0&&n6==0)
break;
char time[6];
int cnt=0;
while(scanf("%s",&time)!=EOF)
 {
if(strcmp(time,"#")==0)
break;
int t;
scanf("%d",&t);
team[cnt].t=t;
team[cnt].h=(time[0]-'0')*10+(time[1]-'0');
team[cnt].m=(time[3]-'0')*10+(time[4]-'0');
cnt++;
}
int i,j;
vector<group> team12,team34,team56;
__int64 sum=0;
for(i=0;i<cnt;i++)
 {
int len;
group tmp;
if(team[i].t==1||team[i].t==2)
 {

len=team12.size();
if(len<n2)
 {
team12.push_back(team[i]);
sum+=team[i].t;
continue;
}
tmp=team12.front();
int usetime=(team[i].h-tmp.h)*60+(team[i].m-tmp.m);
group fuck;
fuck=team12.back();
if(((team[i].h-fuck.h)*60+(team[i].m-fuck.m))<=0)
continue;
if(usetime<0)
continue;
if(usetime<30)
 {
team[i].h=tmp.h+(tmp.m+30)/60;
team[i].m=(tmp.m+30)%60;
}
team12.erase(team12.begin());
team12.push_back(team[i]);
sum+=team[i].t;
}

if(team[i].t==3||team[i].t==4)
 {
len=team34.size();
if(len<n4)
 {
team34.push_back(team[i]);
sum+=team[i].t;
continue;
}

tmp=team34.front();
int usetime=(team[i].h-tmp.h)*60+(team[i].m-tmp.m);
group fuck;
fuck=team12.back();
if(((team[i].h-fuck.h)*60+(team[i].m-fuck.m))<=0)
continue;
if(usetime<0)
continue;
if(usetime<30)
 {
team[i].h=tmp.h+(tmp.m+30)/60;
team[i].m=(tmp.m+30)%60;
}
team34.erase(team34.begin());
team34.push_back(team[i]);
sum+=team[i].t;
}


if(team[i].t==5||team[i].t==6)
 {
len=team56.size();
if(len<n6)
 {
team56.push_back(team[i]);
sum+=team[i].t;
continue;
}
tmp=team56.front();
int usetime=(team[i].h-tmp.h)*60+(team[i].m-tmp.m);
group fuck;
fuck=team12.back();
if(((team[i].h-fuck.h)*60+(team[i].m-fuck.m))<=0)
continue;
if(usetime<0)
continue;
if(usetime<30)
 {
team[i].h=tmp.h+(tmp.m+30)/60;
team[i].m=(tmp.m+30)%60;
}
team56.erase(team56.begin());
team56.push_back(team[i]);
sum+=team[i].t;
}
}
printf("%I64d\n",sum);
}
return 0;
}
|