hdu1873优先队列

 1 #include<stdio.h>

 2 #include<queue>

 3 using namespace std;

 4 struct node

 5 {

 6     int id;

 7     int val;

 8     friend bool operator< (node a,node b)

 9     {

10         if(a.val!=b.val)

11         return a.val<b.val;

12         else

13         {

14             return a.id>b.id;

15         }

16     }

17 };

18 int n;

19 int main()

20 {

21     int i,j;

22     char s[100];

23     int num,set;

24     while(scanf("%d",&n)!=EOF)

25     {

26         num=1;

27         node temp;

28         priority_queue<node>q[5];

29         for(i=1;i<=n;i++)

30         {

31             scanf("%s",s);

32             if(s[0]=='I')

33             {

34                 scanf("%d %d",&set,&temp.val);

35                 temp.id=num++;

36                 q[set].push(temp);

37             }

38             else

39             {

40                 scanf("%d",&set);

41                 if(q[set].empty())

42                 {

43                     printf("EMPTY\n");

44                     continue;

45                 }

46                 node exm=q[set].top();

47                 q[set].pop();

48                 printf("%d\n",exm.id);

49             }

50         }

51     }

52 }

 

你可能感兴趣的:(优先队列)