因为没有学过优先队列这种数据结构,因此我使用的队列二维数组解决的这道题目。
AC代码如下:(31ms)
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<queue>
using namespace std;
const int maxn=2005;
int n,a,b;
int top;
bool flag;
int maxp;//标记病人id
///queue<int>vecdoc[4][12];//拥有该优先级病人的id
int vecnum[maxn];//该id病人的优先级
char str[10];
int main()
{
while(~scanf("%d",&n))
{
maxp=1;
queue<int>vecdoc[4][12];
for(int i=0;i<n;++i)
{
scanf("%s",str);
if(str[0]=='I')
{
scanf("%d%d",&a,&b);
vecnum[maxp]=b;
vecdoc[a][b].push(maxp++);
}
else if(str[0]=='O')
{
flag=1;
scanf("%d",&a);