MZL’s simple problem
Time Limit: 3000/1500 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)
Total Submission(s): 2000 Accepted Submission(s): 781
Problem Description
A simple problem
Problem Description
You have a multiple set,and now there are three kinds of operations:
1 x : add number x to set
2 : delete the minimum number (if the set is empty now,then ignore it)
3 : query the maximum number (if the set is empty now,the answer is 0)
Input
The first line contains a number N (N≤106),representing the number of operations.
Next N line ,each line contains one or two numbers,describe one operation.
The number in this set is not greater than 109.
Output
For each operation 3,output a line representing the answer.
Sample Input
6
1 2
1 3
3
1 3
1 4
3
Sample Output
3
4
不要用数组存储,及时处理就行,水题。
//
// main.cpp
// 150804-1007
//
// Created by 袁子涵 on 15/8/4.
// Copyright (c) 2015年 袁子涵. All rights reserved.
//
#include <iostream>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
using namespace std;
long long int N;
long long int a,b,c;
unsigned long int sum=1;
long long int maxs=0;
long long int mins=0;
int main(int argc, const char * argv[]) {
scanf("%lld",&N);
long long int T=N;
while (T--) {
scanf("%lld",&a);
if (a==1) {
scanf("%lld",&b);
sum++;
if (b>maxs) {
maxs=b;
}
if (sum==2) {
maxs=b;
mins=b;
}
continue;
}
else
{
if (a==2) {
if (sum==1) {
continue;
}
if (sum==2) {
sum=1;
maxs=0;
continue;
}
sum--;
continue;
}
if (a==3) {
if (sum==1) {
printf("0\n");
continue;
}
printf("%lld\n",maxs);
continue;
}
}
}
return 0;
}