📄 2963418_ac_0ms_176k.cpp
字号:
#include <stdio.h>
#include <iostream>
#include <list>
#include <string>
#include <algorithm>
using namespace std;
struct node
{
int id;
int len;
};
int main()
{
int s, l, id, cas = 1;
int mark[101];
string op;
list <node> bshelf;
list <node> ::iterator iter;
int len;
node t;
while(scanf("%d",&s)==1&&s!=-1)
{
bshelf.clear();
len = s;
memset(mark,0,sizeof(mark));
while(1)
{
cin>>op;
if(op=="E")
break;
if(op=="R")
{
cin>>id;
if(mark[id]==1)
{
mark[id] = 0;
for(iter = bshelf.begin(); iter!=bshelf.end(); ++iter)
{
if((*iter).id==id)
{
len += (*iter).len;
bshelf.erase(iter);
break;
}
}
}
}
else
{
cin>>id>>l;
t.id = id;
t.len = l;
len -= l;
bshelf.push_front(t);
mark[id] = 1;
while(len<0)
{
iter = bshelf.end();
iter--;
len += (*iter).len;
mark[(*iter).id] = 0;
bshelf.pop_back();
}
}
}
printf("PROBLEM %d:",cas++);
if(!bshelf.empty())
{
for(iter = bshelf.begin(); iter != bshelf.end(); ++iter)
{
printf(" %d",(*iter).id);
}
}
printf("\n");
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -