1 0 0 08:00 1 08:10 2 08:20 2 答案居然是3!!!!
题意都理解错了
#include<iostream>
#include<algorithm>
using namespace std;
int table1[101],table2[101],table3[101];
int main()
{
char time[10];
int a,b,c,num;
int sum;
while(scanf("%d%d%d",&a,&b,&c)!=EOF&&a+b+c)
{
memset(table1,0,sizeof(table1));
memset(table2,0,sizeof(table2));
memset(table3,0,sizeof(table3));
sum=0;
while(scanf("%s",time)&&time[0]!='#')
{
int timee=((time[0]-'0')*10+time[1]-'0'-8)*60+(time[3]-'0')*10+time[4]-'0';
scanf("%d",&num);
if(num==1||num==2)
{
if(a==0) continue;
sort(table1,table1+a);
if(table1[0]-timee<=30)//table1记录的是离开的时间,如果table1[0]>timee+30,这个客人离开,不再等待
{
sum+=num;
if(table1[0]>=timee) table1[0]+=30;
else table1[0]=timee+30;
}
}
else if(num==3||num==4)
{
if(b==0) continue;
sort(table2,table2+b);
if(table2[0]-timee<=30)//table2记录的是离开的时间
{
sum+=num;
if(table2[0]>=timee) table2[0]+=30;
else table2[0]=timee+30;
}
}
else
{
if(c==0) continue;
sort(table3,table3+c);
if(table3[0]-timee<=30)//table3记录的是离开的时间
{
sum+=num;
if(table3[0]>=timee) table3[0]+=30;
else table3[0]=timee+30;
}
}
}
printf("%d\n",sum);
}
return 0;
}