标签:想法题
给你n行,若以1为开头,则输入一个数入队列,2就删除队列中最小的数,3就输出队列中最大的数。
题解:
开个max记录出现的最大的数,开个num记录现在一共有多少个数在队列中,因为删除到最后才会删掉最大的数,所以每次删除就让num--。max的初值赋为负无穷。
参考代码:
#include<stdio.h> #define inf 999999999 int main() { int n,x,a,max,num; while(~scanf("%d",&n)) { max=-inf; num=0; while(n--) { scanf("%d",&x); if(x==1) { scanf("%d",&a); num++; if(max<a) max=a; } if(x==2) { if(num) num--; if(!num) max=-inf; } if(x==3) { if(!num) printf("0\n"); else printf("%d\n",max); } } } return 0; }
版权声明:本文为博主原创文章,随便转载。
hdu - 5349 MZL's simple problem(解题报告)
标签:想法题
原文地址:http://blog.csdn.net/luwhere/article/details/47356743