zoukankan      html  css  js  c++  java
  • UVA 230 Borrowers

    题意:模拟图书馆图书的借用状态。书有三种状态:1在图书馆的书架上,2被接走了,3刚还回来还没有放到书架上。每次有三种操作:1借书,2还书,3把换回来的书放回书架。

    思路:思路简单,主要就是map,set的运用比较复杂,还是折腾了挺久

    #include<bits/stdc++.h>
    
    struct Book
    {
        string aut,tit;
        bool operator < (const struct Book& b)const{
            return aut<b.aut || (aut==b.aut && tit<b.tit);
        }
    }book;
    
    set<Book> ret,lib;
    string s,tit;
    map<string,string> mp;
    
    int main(void)
    {
        while(getline(cin,s)&&(s!="END"))
        {
            int i=s.find('"',1);
            book.tit=s.substr(0,i+1);
            book.aut=s.substr(i+5);
            mp[book.tit]=book.aut;
            lib.insert(book);
        }
    
        while(getline(cin,s))
        {
            if(s[0]=='E')   break;
            if(s[0]=='S')   // 显示操作
            {
                set<Book>::iterator it,it1;
                for(it=ret.begin();it!=ret.end();it++)
                {
                    cout<<"Put "<<it->tit<<" ";
                    it1=lib.lower_bound(*it);
                    if(lib.empty()||it==lib.begin())
                        cout<<"first"<<endl;
                    else
                        cout<<"after "<<(--it1)->tit<<endl;
                    lib.insert(*it);
                }
                ret.clear();
                cout<<"END"<<endl;
            }
            else    // 借还操作
            {
                int i=s.find('"');
                string booktit=s.substr(i);
                book.tit=booktit;
                book.aut=mp[booktit];
                if(s[0]=='B') lib.erase(book);
                else ret.insert(book);
            }      
        }
        return 0;
    }
  • 相关阅读:
    spring mvc velocity多视图
    ubuntu 的远程桌面
    nhibernate 3.3 linq扩展
    MongoDB资料汇总专题[转发]
    SQLServer 2008 删除、压缩日志
    VS2012和2010 设置framework版本
    引用的程序集 没有强名称
    Xamarin for OSX – SetUp
    Xamarin devexpress datagrid 样式
    Xamarin devexpress Grid
  • 原文地址:https://www.cnblogs.com/jaszzz/p/13054056.html
Copyright © 2011-2022 走看看