现在的位置: 首页 > 综合 > 正文

hdu1873(看病要排队)

2018年02月22日 ⁄ 综合 ⁄ 共 1184字 ⁄ 字号 评论关闭
#include<stdio.h>
#include<string.h>
typedef struct
iller
{
    int
DN;
    int
yox;
    int
namber;
}iller;
typedef
struct docter
{
    int
DN;
}docter;
int
main()
{
    iller ill[2100];
    docter d;
    int
t,i,i1,j,k,a[2100];
    char
ch[10];
    while(scanf("%d",&t)==1)
    {
       
k=i=i1=0;
       
while(t--)
       
{
           
getchar();
           
scanf("%s",ch);
           
if(strcmp(ch,"IN")==0)
           
{
               
scanf("%d%d",&ill[k].DN,&ill[k].yox);
               
ill[k].namber=k+1;k++;
           
}
           
else
           
{
               
scanf("%d",&d.DN);
               
int maxy=0,flog=0,i2;
               
for(j=0;j<k;j++)
               
if(ill[j].DN==d.DN)//这个医生有病人要求他看病
               
if(ill[j].namber>0)//这个病人没有被治疗过
               
if(maxy<ill[j].yox)//这个病人优先级最高
               
{
                   
flog=1;i2=j;
                  
maxy=ill[j].yox;
               
}
               
if(flog)
               
{
                   
a[i1]=ill[i2].namber; i1++;
                    
ill[i2].namber=0;//被治疗好的病人用零表示
               
}
               
else
               
a[i1++]=0;//这个医生没有要治疗的病人用零表示空
           
}
       
}
       
for(i=0;i<i1;i++)
       
if(a[i])
       
printf("%dn",a[i]);
       
else
       
printf("EMPTYn");
    }
    return
0;
}

抱歉!评论已关闭.