仔细观察,当你新建一个word文档时,会得到一个名为“新建 Microsoft Word 文档.doc”的文件,再新建一个,则名为“新建 Microsoft Word 文档(2).doc”,再新建,便是“新建 Microsoft Word 文档(3).doc”。不断新建,编号不断递增。倘若你现在新建了三个文档,然后删除了“新建 Microsoft Word 文档(2).doc”,再新建就又会得到一个“新建 Microsoft Word 文档(2).doc”。
严格说,Windows在每次新建文档时,都会选取一个与已有文件编号不重复的最小正整数作为新文档的编号。
请编程模拟以上过程,支持以下两种操作
New:新建一个word文档,反馈新建的文档的编号
Delete id:删除一个编号为id的word文档,反馈删除是否成功
初始时一个文件都没有,“新建 Microsoft Word 文档.doc”的编号算作1。
New
New
New
Delete 2
New
Delete 4
Delete 3
Delete 1
New
New
New
Delete 4
2
3
Successful
2
Failed
Successful
Successful
1
3
4
Successful
删除编号的数值不超过2012
# include <iostream>
# include <cstdio>
# include <cstring>
using namespace std;
int main(){
int n;
char a[100];
int num[1500];
memset(a,0,sizeof(a));
memset(num,0,sizeof(num));
scanf("%d",&n);
int s;
int cnt = 0;
for(int i=0;i<n;i++){
scanf("%s",a);
if(a[0]=='D'){
scanf("%d",&s);
}
if(strcmp(a,"New")==0){
for(int j=0;j<=cnt;j++){
if(!num[j]){
num[j] = 1;
cnt++;
printf("%d\n",j+1);
break;
}
}
}else{
if(num[s-1]==0){
printf("Failed\n");
}else{
num[s-1] = 0;
printf("Successful\n");
}
}
}
return 0;
}