• Uva



    AC代码:

    #include <iostream>
    #include <cstdio>
    #include <cstdlib>
    #include <cctype>
    #include <cstring>
    #include <string>
    #include <sstream>
    #include <vector>
    #include <set>
    #include <map>
    #include <algorithm>
    #include <stack>
    #include <queue>
    
    using namespace std;
    
    // 这里用struct也可以
    class book
    {
    public:
    	book(string t, string a) { author = a; title = t; borrowed = returned = false; }
    	bool borrowed, returned;
    	string author, title;
    };
    
    vector<book> all;
    string in, command, req;
    
    void shelve(), borrow(), back();
    
    bool cmpa(book a, book b){ return (a.author < b.author); }
    bool cmpt(book a, book b){ return (a.title < b.title); }
    
    int main()
    {
    	while (getline(cin, in) && in != "END")
    		all.push_back(book(in.substr(0, in.find_last_of(""") + 1),
    		in.substr(in.find_last_of(""") + 1)));
    	stable_sort(all.begin(), all.end(), cmpt);
    	stable_sort(all.begin(), all.end(), cmpa);
    
    	while (cin >> command)
    		if (command == "BORROW")
    			cin.get(), borrow();
    		else if (command == "RETURN")
    			cin.get(), back();
    		else if (command == "SHELVE")
    			cin.get(), shelve();
    }
    
    void shelve()
    {
    	for (int i = 0, j; i < all.size(); ++i)
    		if (all[i].returned == true)
    		{
    			for (j = i; j >= 0; --j)
    				if (all[j].borrowed == false)
    					break;
    			if (j == -1)
    				printf("Put %s first
    ", all[i].title.c_str());
    			else
    				printf("Put %s after %s
    ", all[i].title.c_str(), all[j].title.c_str());
    			all[i].borrowed = all[i].returned = false;
    		}
    	cout << "END
    ";
    }
    void borrow()
    {
    	getline(cin, req);
    	for (int i = 0; i < all.size(); i++)
    		if (all[i].title == req)
    		{
    			all[i].borrowed = true;
    			return;
    		}
    }
    void back()
    {
    	getline(cin, req);
    	for (size_t i = 0; i < all.size(); i++)
    		if (all[i].title == req)
    		{
    			all[i].returned = true;
    			return;
    		}
    }




  • 相关阅读:
    Django
    索引
    idea启动tomcat后控制台日志显示中文乱码问题
    Elasticsearch
    Hive 开窗函数
    hadoop-3.1.1集群搭建
    hadoop-2.6.5集群搭建
    spark集群搭建(spark版本2.3.2)
    Zookeeper
    spark-submit(spark版本2.3.2)
  • 原文地址:https://www.cnblogs.com/zhangyaoqi/p/4591584.html
Copyright © 2020-2023  润新知