HDU 1497(Simple Library Management System)

1893 단어 HDU
아 날로 그 문제, set 데이터 구 조 를 사용 하여 모든 사용자 가 현재 빌 린 모든 도 서 를 저장 합 니 다.
#include 
#include 
#include 
#include 
using namespace std;
const int MAXM = 1005;
const int MAXN = 100005;

set user[MAXM]; //  ,   set             
int book[MAXN]; //      ,0    ,1    
map bookTOuser; //    -    

int main()
{
	int M, N;
	while (cin >> M >> N)
	{
		memset(book, 0, sizeof(book));
		bookTOuser.clear();
		for (int i = 1; i <= M; i++)
		{
			user[i].clear();
		}

		int C;
		cin >> C;
		char command; //  
		int ui, bi; //    ,    
		while (C--)
		{
			cin >> command;
			if (command == 'B') //  
			{
				cin >> ui >> bi;
				if (book[bi] == 1)
					cout << "The book is not in the library now" << endl;
				else if (user[ui].size() == 9)
					cout << "You are not allowed to borrow any more" << endl;
				else
				{
					cout << "Borrow success" << endl;
					book[bi] = 1;
					user[ui].insert(bi);
					bookTOuser[bi] = ui;
				}
			}
			else if (command == 'R') //  
			{
				cin >> bi;
				if (book[bi] == 0)
					cout << "The book is already in the library" << endl;
				else
				{
					cout << "Return success" << endl;
					book[bi] = 0;
					user[bookTOuser[bi]].erase(bi);
				}
			}
			else if (command == 'Q') //  
			{
				cin >> ui;
				if (user[ui].empty())
					cout << "Empty" << endl;
				else
				{
					set::iterator it;
					it = user[ui].begin();
					cout << *it;
					for (++it; it != user[ui].end(); it++)
					{
						cout << " " << *it;
					}
					cout << endl;
				}
			}
		}
		cout << endl;
	}
	return 0;
}

계속 힘 내.

좋은 웹페이지 즐겨찾기