codeforces 7B - Memory Manager
2013-05-30 21:02
239 查看
模拟操作系统的内存分配原理
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define M 100+5
int mem[M]; char s[15];
int t,m;
int check(int x,int c){
int i,j,f;
for(i=1;i<=m-x+1;i++){
f=0;
for(j=i;j<i+x;j++)
if(mem[j]!=0)f=1;
if(f==0){
for(j=i;j<i+x;j++)
mem[j]=c;
return 1;
}
}
return 0;
}
int main(){
int i,j,c,x,f;
while(~scanf("%d %d",&t,&m)){
c=1;
memset(mem,0,sizeof(mem));
while(t--){
scanf("%s",s);
if(s[0]=='a'){
scanf("%d",&x);
if(check(x,c)==1)printf("%d\n",c++);
else puts("NULL");
}else if(s[0]=='e'){
scanf("%d",&x);
if(x==0)puts("ILLEGAL_ERASE_ARGUMENT");
else{
f=0;
for(i=1;i<=m;i++)
if(mem[i]==x){
mem[i]=0;
f=1;
}
if(f==0)puts("ILLEGAL_ERASE_ARGUMENT");
}
}else if(s[0]=='d'){
i=j=1;
while(j<=m){
mem[i]=mem[j];
if(mem[i]!=0){
if(j>i)mem[j]=0;
i++;
}
j++;
}
}
}
}
return 0;
}
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define M 100+5
int mem[M]; char s[15];
int t,m;
int check(int x,int c){
int i,j,f;
for(i=1;i<=m-x+1;i++){
f=0;
for(j=i;j<i+x;j++)
if(mem[j]!=0)f=1;
if(f==0){
for(j=i;j<i+x;j++)
mem[j]=c;
return 1;
}
}
return 0;
}
int main(){
int i,j,c,x,f;
while(~scanf("%d %d",&t,&m)){
c=1;
memset(mem,0,sizeof(mem));
while(t--){
scanf("%s",s);
if(s[0]=='a'){
scanf("%d",&x);
if(check(x,c)==1)printf("%d\n",c++);
else puts("NULL");
}else if(s[0]=='e'){
scanf("%d",&x);
if(x==0)puts("ILLEGAL_ERASE_ARGUMENT");
else{
f=0;
for(i=1;i<=m;i++)
if(mem[i]==x){
mem[i]=0;
f=1;
}
if(f==0)puts("ILLEGAL_ERASE_ARGUMENT");
}
}else if(s[0]=='d'){
i=j=1;
while(j<=m){
mem[i]=mem[j];
if(mem[i]!=0){
if(j>i)mem[j]=0;
i++;
}
j++;
}
}
}
}
return 0;
}
相关文章推荐
- Codeforces 7B
- codeforces 383C Propagating tree
- Codeforces 634A Island Puzzle 【水题】
- 【CodeForces】510B - Fox And Two Dots(bfs)
- Codeforces 779C(结构体妙用+标记数组)
- 【CodeForces - 808B Average Sleep Time】 思维
- CodeForces 919A Supermarket(水题)
- codeforces_rockethon2015 A. Game
- codeforces 632C. The Smallest String Concatenation 排序
- CodeForces 149D Coloring Brackets(区间DP)
- 【CodeForces】500B - New Year Permutation(Floyd)(贪心)
- Codeforces 106 D. Treasure Island(前缀和预处理)
- Codeforces 919F SG大爆搜(拓扑)
- codeforces 137D Palindromes (dp神题路基打印)
- codeforces--623B Alice, Bob, Two Teams
- CodeForces 510B B. Fox And Two Dots
- Codeforces 754 D Fedor and coupons【优先队列】
- Masha and geometric depression (Codeforces-789B)
- 【线段树】Codeforces 767C Garland
- CodeForces 493C Vasya and Basketball