• 求最小


    【题目描述】
    给你两种操作:

    1. 加入一个数a
    2. 输出并删除所有数中最小的一个数
      一共有n个操作
      【输入格式】
      第一行:n
      剩下的n行 :
      1.有一个0和一个数a,表示操作1
      2.有一个1,表示操作2
      【输出格式】
      对每一个操作2,输出一行表示答案
      【输入样例】
      5
      0 1
      0 3
      1
      0 -1
      1
      【输出样例】
      1
      -1
      【数据范围】
      0%的数据 n<1
      30%的数据n<=1000
      100%的数据n<=100000
      代码
    #include<bits/stdc++.h>
    using namespace std;
    struct point{
    	int a, u;
    };
    point q[100001];
    int n;
    bool cmp1(point u, point v){
    	return u.a > v.a;
    }
    int main(){
    	freopen("small.in", "r", stdin);
    	freopen("small.out", "w", stdout);
    	cin >> n;
    	int l = 0, x, a;
    	for(int i = 1; i <= n; i++){
    		scanf("%d", &x); 
    		if(x == 0){
    			scanf("%d", &a);
    			l++;
    			q[l].a = a;
    			q[l].u = l;
    		}
    		else{
    			sort(q+1, q+1+l, cmp1);
    			printf("%d
    ", q[l].a);
    			l--;
    		}
    	}
    	return 0;
    }
    
  • 相关阅读:
    深入理解多态..............................
    走过路过 不要错过..
    进军C#..
    员工打卡....
    MySQL
    MySQL
    MySQL
    MySQL
    MySQL
    MySQL
  • 原文地址:https://www.cnblogs.com/LJA001162/p/13392020.html
Copyright © 2020-2023  润新知