【链接】 我是链接,点我呀:)

【题意】

在这里输入题意

【题解】

用map+set写个模拟就好。
3个区域
书架、桌子、别人的手上。
其中前两个区域的书都能借出去。

【代码】

#include <bits/stdc++.h>
using namespace std; set <pair<string, string> > mset1,mset2,mset3;
map<string, string> author;
string s1,s2,s3; int main()
{
//freopen("F:\\rush.txt", "r", stdin);
while (getline(cin,s1))
{
if(s1 == "END") break;
s2 = "";
int now = 1;
while (s1[now] != '"') s2 += s1[now++];
assert(s1[now] == '"');
now+=5;
s3 = s1.substr(now);
mset1.insert(make_pair(s3, s2));
author[s2] = s3;
}
while (getline(cin, s1))
{
if (s1 == "END") break;
if (s1[0] == 'B')
{
s2 = s1.substr(8);
s2.erase((int)s2.size() - 1);
auto it = mset1.find(make_pair(author[s2], s2));
if (it != mset1.end())
{
mset3.insert((*it));
mset1.erase(it);
}
else {
it = mset2.find(make_pair(author[s2], s2));
if (it != mset2.end())
{
mset3.insert((*it));
mset2.erase(it);
}
}
}
else
if (s1[0] == 'R')
{
s2 = s1.substr(8);
s2.erase((int)s2.size() - 1);
auto it = mset3.find(make_pair(author[s2], s2));
if (it != mset3.end())
{
mset2.insert((*it));
mset3.erase(it);
}
}
else {
for (auto temp : mset2)
{
mset1.insert(temp);
auto it = mset1.find(temp);
if (it != mset1.begin())
{
it--;
cout << "Put " << '"' << temp.second << '"' << " after " << '"' << (*it).second << '"' << endl;
}
else
cout << "Put "<<'"'<<temp.second << '"'<<" first" << endl;
}
cout << "END" << endl;
mset2.clear();
} }
return 0;
}

【习题 5-8 UVA - 230】Borrowers的更多相关文章

  1. uva 230 Borrowers(摘)<vector>"结构体“ 膜拜!

    I mean your borrowers of books--those mutilators of collections, spoilers of the symmetry of shelves ...

  2. UVa 230 Borrowers(map和set)

    I mean your borrowers of books - those mutilators of collections, spoilers of the symmetry of shelve ...

  3. Uva - 230 - Borrowers

    AC代码: #include <iostream> #include <cstdio> #include <cstdlib> #include <cctype ...

  4. UVA 230 Borrowers (STL 行读入的处理 重载小于号)

    题意: 输入若干书籍和作者名字,然后先按作者名字升序排列,再按标题升序排列,然后会有3种指令,BORROW,RETURN, SHELVE. BORROW 和 RETURN 都会带有一个书名在后面,如: ...

  5. Borrowers UVA - 230

      I mean your borrowers of books - those mutilators of collections, spoilers of the symmetry of shel ...

  6. ACM训练计划建议(写给本校acmer,欢迎围观和指正)

    ACM训练计划建议 From:freecode#  Date:2015/5/20 前言: 老师要我们整理一份训练计划给下一届的学弟学妹们,整理出来了,费了不少笔墨,就也将它放到博客园上供大家参考. 菜 ...

  7. ACM训练计划建议(转)

    ACM训练计划建议 From:freecode#  Date:2015/5/20 前言: 老师要我们整理一份训练计划给下一届的学弟学妹们,整理出来了,费了不少笔墨,就也将它放到博客园上供大家参考. 菜 ...

  8. 动态规划 Dynamic Programming 学习笔记

    文章以 CC-BY-SA 方式共享,此说明高于本站内其他说明. 本文尚未完工,但内容足够丰富,故提前发布. 内容包含大量 \(\LaTeX\) 公式,渲染可能需要一些时间,请耐心等待渲染(约 5s). ...

  9. UVa第五章STL应用 习题((解题报告))具体!

    例题5--9 数据库 Database UVa 1592 #include<iostream> #include<stdio.h> #include<string.h&g ...

随机推荐

  1. Java图像渐变

    图像渐变我们大体想一下思路无非是这样:将图像所有的像素点的RBG,每个点就减去相同的量,而且这个量是个渐变的量.是的,就是这样,我们的程序也是这个思路,不过就是没有单纯的“想”这么简单了.我这里只编写 ...

  2. 42.cnpm不是内部命令的解决方案:配置环境变量

    转自:https://blog.csdn.net/u014540814/article/details/78777961

  3. 基于 Web 的 Go 语言 IDE - Wide 1.1.0 发布!

    发布 1.1.0 这个版本改进了很多细节,已经完全可以用于正式项目的开发 同时我们上线了 Wide 在线服务 到目前,我们提供了 Wide 和 Solo 两个在线服务,详情请看这里. Wide 是什么 ...

  4. Enity Framework已经是.NET下最主要的ORM了

    Enity Framework已经是.NET下最主要的ORM了.而ORM从一个Mapping的概念开始,到现在已经得到了一定的升华,特别是EF等对ORM框架面向对象能力的升华.切实地说,就是ORM让数 ...

  5. 使用Java语言开发微信公众平台(六)——获取access_token

             在前四期的文章中,我们分别学习了“环境搭建与开发接入”.“文本消息的接收与响应”.“被关注回复与关键词回复”.“图文消息的发送与响应”等环节.那么,从本篇博文开始,我们将进去更高级的 ...

  6. 2229: [Zjoi2011]最小割(最小割树)

    Description 小白在图论课上学到了一个新的概念——最小割,下课后小白在笔记本上写下了如下这段话: “对于一个图,某个对图中结点的划分将图中所有结点分成两个部分,如果结点s,t不在同一个部分中 ...

  7. Android图片处理——压缩、剪裁、圆角、保存

    点击查看原文 项目中用到的关于图片的处理 public class UtilPicture { public static final String IMAGE_UNSPECIFIED = " ...

  8. linux监测tomcat服务

    原文链接:https://blog.csdn.net/qq_37936542/article/details/81086928 项目上线之后,tomcat服务器有时候会莫名其妙的挂掉,利用shell写 ...

  9. 洛谷——P1073 最优贸易 ([NOIP2009] )

    https://www.luogu.org/problem/show?pid=1073 题目描述 C 国有 n 个大城市和 m 条道路,每条道路连接这 n 个城市中的某两个城市.任意两个 城市之间最多 ...

  10. javascript之Ajax起步

    XMLHttpRequest  readyState属性的值: UNSENT--0--已创建XMLHttpRequest对象. OPENED--1--已调用open方法: HEADERS_RECEIV ...