样例全过,自己造的数据也没错,到底哪里有问题,请大佬们帮忙
代码:
#include<bits/stdc++.h>
using namespace std;
int n , a[100010] , len;
bool push (int x) {
for (int i = 1;i <= len;i ++) {
if (a[i] == x) return false;
}
a[++ len] = x;
return true;
}
int pop (int x) {
if (len == 0) return 0;
int min = 0 , max = INT_MAX;
int minn = 1, maxx = 1;
for (int i = 1;i <= len && min != max;i ++) {
if (a[i] <= x && a[i] > min) min = a[i] , minn = i;
if (a[i] >= x && a[i] < max) max = a[i] , maxx = i;
}
if (x - min <= max - x) {
a[minn] = a[len];
a[len --] = 0;
return min;
}
a[maxx] = a[len];
a[len --] = 0;
return max;
}
int main () {
cin >> n;
int b , c;
while (n --) {
cin >> b >> c;
switch (b) {
case 1 :
if ( !push(c) )
cout << "Already Exist";
break;
case 2 :
b = pop(c);
if (b == 0) cout << "Empty";
else cout << b;
break;
default : break;
}
cout << "\n";
}
return 0;
}