没什么好分析,只要弄懂题意就行了。

Code
#include <iostream>
#include <deque>
#include <algorithm>
using namespace std;

int main()


{
deque<int> data,remove,del;
int maxprocess,n,processor,temp;
while(cin>>maxprocess)

{
cin>>n;
data.clear();remove.clear();del.clear();processor = 1;

for(int i=0;i<n;++i)

{
cin>>temp;
remove.push_back(temp);
}

char abc;
while(cin>>abc,abc!='e')

{
if(abc == 'p')

{ cin>>processor; continue; }
if(abc == 'a')

{
cin>>temp;
if(temp>maxprocess)
continue;
data.push_back(temp);
continue;
}
if(abc == 'r')

{
if(data.size()>0)

{
if(processor == 1)

{
del.push_back(*min_element(data.begin(),data.end()));
sort(data.begin(),data.end());
data.pop_front();
}
else

{
del.push_back(*max_element(data.begin(),data.end()));
sort(data.begin(),data.end());
data.pop_back();
}
}
else

{ cout<<"-1"<<endl;continue; }
}
}

for(int k = 0 ; k < n ; k++)

{
if(remove[k] <= del.size())
cout<<del[ remove[k] - 1]<<endl;
}
cout<<endl;
}
return 0;
}


转载于:https://www.cnblogs.com/jaskist/archive/2009/04/30/1446974.html