题意:进程模拟。设有一个容器,对这个容器有下面四种操作:
a x:将一个花费为x的进程放入容器;
r:根据manager policy 取出花费最大还是最小的进程;
p i:修改manager policy ,i只有两种取值,即1和2;
e:结束模拟。
另外,manager policy 初始值是1,。并且,1代表取出最大花费的进程,2代表取出最小花费的进程。
注意:结束一个模拟后要多输出一个回车,就因为这个PE了一次。。。。
代码如下:
#include<cstdio>
#include<cstring>
#include<iostream>
#include<cstdlib>
#include<cmath>
#include<algorithm>
#include<queue>
#include<stack>
#include<set>
#include<map>
using namespace std;
const int M=1010;
const int N=11000;
bool g[N][N],vis[N];
int n,m,ans,match[N];
int l[N],q[N],len;
int query(int p)
{
int t=0;
for (int i=1;i<len;i++){