1047. Student List for Course (25)

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

using namespace std;

vector<int> v[2510];
char name[270000][5];

int getbigindex(char s[])
{
	return s[3] - '0' + (s[2] - 'A') * 10 + (s[1] - 'A') * 10 * 26 + (s[0] - 'A') * 10 * 26 * 26;
}

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

	int i, c, bigindex, j, course;
	char s[5];

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

		bigindex = getbigindex(s);
		strcpy(name[bigindex], s);

		for(j = 1; j <= c; j++)
		{
			scanf("%d", &course);
			v[course].push_back(bigindex);
		}
	}

	int size;
	for(i = 1; i <= k; i++)
	{
		size = v[i].size();
		printf("%d %d\n", i, size);

		if(size > 0)
		{
			sort(v[i].begin(), v[i].end());

			for(j = 0; j < size; j++)
			{
				printf("%s\n", name[v[i][j]]);
			}
		}
	}

	system("pause");
	return 0;
}

 

posted on 2025-11-23 17:07  王景迁  阅读(4)  评论(0)    收藏  举报

导航