#include<stdio.h> #include<stdlib.h> #include<queue> using namespace std; const int k=100; struct cmp { bool operator()(const int &a,const int &b) { return a<b;//最小堆 } }; priority_queue<int,vector<int>,cmp> resQueue; int main() { FILE *fin; fin=fopen("1.txt","r"); int num; while(fscanf(fin,"%d",&num)==1) { if(resQueue.size()<k) { //printf("@@@@@@@@@@@@@@@num=%d/n",num); resQueue.push(num); continue; } if(resQueue.top()>num) { resQueue.pop(); resQueue.push(num); } } while(!resQueue.empty()) { printf("%d /n",resQueue.top()); resQueue.pop(); } return 0; }