hdu 1497(图书管理系统模拟)

来源:互联网 发布:php ture还是true 编辑:程序博客网 时间:2024/05/12 12:43

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1497

思路:就是一个简单的图书管理系统模拟,book的布尔值显示是否在图书馆;如果有一个人还书,那么那个人的拥有书的信息也要修改。

View Code
 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<algorithm> 5 using namespace std; 6 #define MAXN 100000+10 7 bool book[MAXN]; 8 int n,m; 9 struct Person{10     int book[11];11     int _count;12 }Per[MAXN/10];13 14 15 int main(){16     int _case;17     while(~scanf("%d%d",&n,&m)){18         memset(book,true,sizeof(book));19         memset(Per,0,sizeof(Per));20         scanf("%d",&_case);21         while(_case--){22             char str[10];23             scanf("%s",str);24             int x,y;25             if(str[0]=='R'){26                 scanf("%d",&x);27                 if(book[x]){puts("The book is already in the library");continue;}28                 else {29                     book[x]=true;30                     puts("Return success");31                     bool flag=true;32                     for(int i=1;i<=m&&flag;i++){33                         int k=Per[i]._count;    34                         for(int j=1;j<=k;j++)if(Per[i].book[j]==x){35                             for(int l=j+1;l<=k;l++){Per[i].book[l-1]=Per[i].book[l];}36                             Per[i]._count--;37                             flag=false;38                             break;39                         }40                     }41                 }42             }else if(str[0]=='B'){43                 scanf("%d%d",&x,&y);44                 int count;45                 if(!book[y]){puts("The book is not in the library now");continue;}46                 else if(Per[x]._count==9){puts("You are not allowed to borrow any more");continue;}47                 else {book[y]=false;count=++Per[x]._count;Per[x].book[count]=y;puts("Borrow success");continue;}48             }else {49                 scanf("%d",&x);50                 if(Per[x]._count==0){puts("Empty");continue;}51                 else {52                     sort(Per[x].book+1,Per[x].book+Per[x]._count+1);53                     for(int i=1;i<Per[x]._count;i++){54                         printf("%d ",Per[x].book[i]);55                     }56                     printf("%d\n",Per[x].book[Per[x]._count]);57                 }58             }59         }60         puts("");61     }62     return 0;63 }

 

0 0
原创粉丝点击