Pagini recente » Cod sursa (job #1280060) | Cod sursa (job #2404152) | Cod sursa (job #2820990) | Cod sursa (job #2715686) | Cod sursa (job #3135517)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("zeap.in");
ofstream fout("zeap.out");
priority_queue<long long> pqmax;
priority_queue<long long> pqmin;
string cerinta;
long long n,u,pu;
int cauta(long long k){
if(pqmax.empty()) return 0;
else{
stack<long long> st;
while(pqmax.top()!=k and !pqmax.empty()){
st.push(pqmax.top());
pqmax.pop();
}
if(pqmax.empty()){
while(!st.empty()){
pqmax.push(st.top());
st.pop();
}
return 0;
}
else{
while(!st.empty()){
pqmax.push(st.top());
st.pop();
}
return 1;
}
}
}
int sterge(long long k){
if(cauta(k)==1){
stack<long long> stmax;
stack<long long> stmin;
while(pqmax.top()!=k and !pqmax.empty()){
stmax.push(pqmax.top());
pqmax.pop();
}
while(pqmin.top()!=-k and !pqmin.empty()){
stmin.push(pqmin.top());
pqmin.pop();
}
pqmax.pop();
pqmin.pop();
while(!stmax.empty()){
pqmax.push(stmax.top());
stmax.pop();
}
while(!stmin.empty()){
pqmin.push(stmin.top());
stmin.pop();
}
}
else
return -1;
}
int main()
{
while(fin>>cerinta){
if(cerinta=="I"){
fin>>n;
//fout<<n<<endl;
pqmax.push(n);
pqmin.push(-n);
}
if(cerinta=="S"){
fin>>n;
//fout<<n<<endl;
if(sterge(n)==-1)
fout<<-1<<endl;
}
if(cerinta=="C"){
fin>>n;
//fout<<n<<endl;
fout<<cauta(n)<<endl;
}
if(cerinta=="MAX"){
//fin>>n;
fout<<pqmax.top()+pqmin.top()<<endl;
}
if(cerinta=="MIN"){
u=-pqmin.top();
pqmin.pop();
pu=-pqmin.top();
pqmin.push(-u);
fout<<pu-u<<endl;
}
}
/*while (!pqmax.empty()) {
std::cout << pqmax.top() << " ";
pqmax.pop();
}*/
return 0;
}