230 - Borrowers
来源:互联网 发布:网络词语大全2016 编辑:程序博客网 时间:2024/05/01 13:52
这道题有一个需要注意的地方:题中所说的放回书时该书前面的书到底是什么。
答案是:现在有的那本排在他前面的书。
该题uva上有测试数据(瓢虫),可以参考~~
#include<cstdio>
#include<iostream>#include<cstring>
#include<map>
#include<string>
#include<algorithm>
#include<cstring>
#include<vector>
#include<set>
using namespace std;
map<string,string> p;
string s1[1000],s2[1000],ss[1000],s[1000],s3,s4;
int main(){
string buf;
int maxn=0,ans,a[1000];
while(getline(cin,buf)){
if(buf=="END")
break;
for(int i=1;i<buf.size();i++){
if(buf[i]=='"'){
ans=i;break;
}
}
for(int i=0;i<buf.size();i++){
if(ans>=i)
s1[maxn]+=buf[i];
if(i>ans+4)
s2[maxn]+=buf[i];
}
p[s1[maxn]]=s2[maxn];
maxn++;
}
memset(a,0,sizeof(a));
int kase=0,ens=0;
set<string> st;
for(int i=0;i<maxn;i++)
st.insert(s2[i]);
for(set<string>::iterator it=st.begin();it!=st.end();++it){
kase=0;
for(int i=0;i<maxn;i++){
if(s2[i]==*it)
ss[kase++]=s1[i];
}
sort(ss,ss+kase);
for(int i=0;i<kase;i++){
s[ens++]=ss[i];
a[ens-1]=1;
ss[i].clear();
}
}
while(getline(cin,buf)){
if(buf=="END")
break;
ans=0;
for(int i=0;i<buf.size();i++)
if(buf[i]=='"'){
ans=i;break;
}
for(int i=0;i<buf.size();i++){
if(i<ans-1)
s3+=buf[i];
if(i>=ans)
s4+=buf[i];
}
if(s3=="BORROW"){
for(int i=0;i<maxn;i++)
if(s[i]==s4){
a[i]=0;break;
}
}
if(s3=="RETURN"){
for(int i=0;i<maxn;i++)
if(s[i]==s4){
a[i]=2;break;
}
}
if(buf=="SHELVE"){
for(int i=0;i<maxn;i++){
if(a[i]==2){
cout<<"Put "<<s[i];
int bbs=0;
for(int j=i-1;j>=0;j--)
if(a[j]==1){
cout<<" after "<<s[j]<<'\n';
bbs=1;break;
}
if(bbs==0)
cout<<" first"<<'\n';
a[i]=1;
}
}
printf("END\n");
}
s3.clear();s4.clear();
}
return 0;
}
0 0
- 230 - Borrowers
- 230 - Borrowers
- 230 - Borrowers
- 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(模拟)
- UVA - 230 Borrowers string+vector
- UVA 230 Borrowers (STL运用)
- 使用hibernate的createSQLQuery方法时,写sql语句,注意的地方
- android Download Manager被禁用
- 面向对象第七课,this隐式参数,内存分析
- 最新数据库排名
- 给年轻工程师的十大忠告
- 230 - Borrowers
- 【UML001】Business Use-Case VS System Use-Case
- 什么是idc
- NineOldAnimations 设计解析
- css 让两个div重叠
- 3.在Ubuntu上为Android增加硬件抽象层(HAL)模块访问Linux内核驱动程序
- Fork and Exec
- 推荐!国外程序员整理的 C++ 资源大全
- Python线程池简单实现