【UVA】230 - Borrowers(map模拟)
来源:互联网 发布:java 置顶 编辑:程序博客网 时间:2024/05/21 12:51
利用map<string,int>判断一本书的状态,0代表借出去了,1代表在书架,2代表借出去换回来但是还未放回书架
设计一些字符串的处理问题,用一些字符串搜索函数比如 strstr , strchar等等
14072706230BorrowersAcceptedC++0.0152014-08-21 02:59:27
AC代码:
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<vector>#include<stack>#include<queue>#include<map>#include<set>#include<list>#include<cmath>#include<string>#include<sstream>#include<ctime>using namespace std;#define _PI acos(-1.0)#define INF (1 << 10)#define esp 1e-9typedef long long LL;typedef unsigned long long ULL;typedef pair<int,int> pill;/*======================================================================================*/#define MAXD 1000 + 10#define LEN 80 + 10struct Book{ char name[LEN]; char author[LEN]; friend bool operator < (Book p , Book q){ int e1 = strcmp(p.author,q.author); int e2 = strcmp(p.name,q.name); if(e1 != 0){ if(e1 > 0) return false; else return true; } else{ if(e2 > 0) return false; else return true; } }}book[MAXD];int n = 0;map<string,int>value;int find_pre(int cur){ for(int i = cur - 1 ; i >= 0 ; i--){ if(value[book[i].name] == 1) return i; } return -1;}int main(){ char str[LEN]; int pos; value.clear(); while(gets(str)){ if(strcmp(str,"END") == 0) break; pos = strchr(str + 1, '"') - str; strncpy(book[n].name,str,pos + 1); book[n].name[pos + 2] = '\0'; pos = strstr(str + pos , "by") - str; strcpy(book[n].author,str + pos + 3); value[book[n].name] = 1; n++; } sort(book , book + n); while(scanf("%s",str)){ if(strcmp(str,"END") == 0) break; if(strcmp(str,"BORROW") == 0){ gets(str); value[str + 1] = 0; } else if(strcmp(str,"RETURN") == 0){ gets(str); value[str + 1] = 2; } else if(strcmp(str,"SHELVE") == 0){ for(int i = 0 ; i < n ; i++) if(value[book[i].name] == 2){ pos = find_pre(i); if(pos == -1) printf("Put %s first\n",book[i].name); else printf("Put %s after %s\n",book[i].name,book[pos].name); value[book[i].name] = 1; } printf("END\n"); } } return 0;}
1 0
- 【UVA】230 - Borrowers(map模拟)
- UVa 230 - Borrowers(模拟)
- UVA 230 Borrowers 简单模拟
- uva 230 Borrowers 习题5-8 (STL string,map练习)
- UVA 230 Borrowers(多种STL运用)
- UVA - 230 Borrowers
- UVa 230 - Borrowers
- UVA - 230 Borrowers
- UVA-230 Borrowers
- Uva - 230 - Borrowers
- UVA 230 Borrowers
- UVA 230(p136)----Borrowers
- UVa 230 Borrowers
- uva 230 Borrowers
- UVA 230 Borrowers
- uva 230 Borrowers
- UVa 230 Borrowers
- UVA - 230 Borrowers string+vector
- struts2 03 action
- Oracle DataGuard ora-16198
- MongoDB基本用法(增删改高级查询、mapreduce)
- hdu4968(选n个物品恰好装满的背包)
- UNIX进程的环境
- 【UVA】230 - Borrowers(map模拟)
- jsonobject 遍历取值
- 美国家长如何培养孩子的财富管理意识
- nginx反向代理,动静态分离,缓存
- win7 的64位操作系统安装oracle11g之后navicat链接不上oracle服务器的解决办法
- 句柄和指针【英国某著名计算及图形面试题】
- Cookie和Session专题
- 一个和美很动人的人生 你有这样回想过你的人生吗?发现它曾带给你的美丽
- gcc