1022. Digital Library (30)

#include <iostream>
#include <string>
#include <string.h>
#include <map>
#include <vector>
#include <algorithm>

using namespace std;

int main()
{
	int n;
	scanf("%d", &n);

	map<string, vector<int>> sv[6];
	int id, i, j, len, k, p;
	char s[100], ch, keyword[20];

	for(i = 1; i <= n; i++)
	{
		scanf("%d", &id);

		getchar();
		for(p = 1; p <= 5; p++)
		{
			gets(s);

			if(p == 3)
			{
				len = strlen(s);
				k = 0;

				for(j = 0; j <= len; j++)
				{
					ch = s[j];

					if(ch == ' ' || j == len)
					{
						keyword[k] = '\0';
						k = 0;

						sv[3][keyword].push_back(id);
					}
					else
					{
						keyword[k++] = ch;
					}
				}
			}
			else
			{
				sv[p][s].push_back(id);
			}
		}
	}

	map<string, vector<int>> ::iterator svit, svbegin, svend;
	for(i = 1; i <= 5; i++)
	{
		svbegin = sv[i].begin();
		svend = sv[i].end();

		for(svit = svbegin; svit != svend; svit++)
		{
			sort((svit->second).begin(), (svit->second).end());
		}
	}
	
	int m;
	scanf("%d", &m);

	getchar();
	char s1[100];
	vector<int> v;
	int size;

	for(i = 1; i <= m; i++)
	{
		gets(s);
		puts(s);

		len = strlen(s);
		for(j = 3, k = 0; j <= len - 1; j++, k++)
		{
			s1[k] = s[j];
		}
		s1[k] = '\0';

		v = sv[s[0] - '0'][s1];
		size = v.size();

		if(size == 0)
		{
			printf("Not Found\n");
		}
		else
		{
			for(j = 0; j <= size - 1; j++)
			{
				printf("%07d\n", v[j]);
			}
		}
	}

	system("pause");
	return 0;
}

 

posted on 2025-11-23 16:58  王景迁  阅读(2)  评论(0)    收藏  举报

导航