1047 Student List for Course——PAT甲级

Zhejiang University has 40,000 students and provides 2,500 courses. Now given the registered course list of each student, you are supposed to output the student name lists of all the courses.

Input Specification:

Each input file contains one test case. For each case, the first line contains 2 numbers: N (≤40,000), the total number of students, and K (≤2,500), the total number of courses. Then N lines follow, each contains a student's name (3 capital English letters plus a one-digit number), a positive number C (≤20) which is the number of courses that this student has registered, and then followed by C course numbers. For the sake of simplicity, the courses are numbered from 1 to K.

Output Specification:

For each test case, print the student name lists of all the courses in increasing order of the course numbers. For each course, first print in one line the course number and the number of registered students, separated by a space. Then output the students' names in alphabetical order. Each name occupies a line.

Sample Input:

复制代码
10 5
ZOE1 2 4 5
ANN0 3 5 2 1
BOB5 5 3 4 2 1 5
JOE4 1 2
JAY9 4 1 2 5 4
FRA8 3 4 2 5
DON2 2 4 5
AMY7 1 5
KAT3 3 5 4 2
LOR6 4 2 4 1 5

Sample Output:

复制代码
1 4
ANN0
BOB5
JAY9
LOR6
2 7
ANN0
BOB5
FRA8
JAY9
JOE4
KAT3
LOR6
3 1
BOB5
4 7
BOB5
DON2
FRA8
JAY9
KAT3
LOR6
ZOE1
5 9
AMY7
ANN0
BOB5
DON2
FRA8
JAY9
KAT3
LOR6
ZOE1

solution:

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define endl '\n'
int main()
{
	int n,k;cin>>n>>k;
	vector<vector<string> >v(k+1);
	for(int i=0;i<n;i++)
	{
		string name;cin>>name;
		int t;cin>>t;
		while(t--)
		{
			int cnt;cin>>cnt;
			v[cnt].push_back(name);
		}
	}
	for(int i=1;i<=k;i++)
	{
		if(v[i].size())
		{
			sort(v[i].begin(),v[i].end());
			cout<<i<<' '<<v[i].size()<<endl;
			for(int j=0;j<v[i].size();j++)
			{
				cout<<v[i][j]<<endl;
			}
		}
		else//测试点1:没人选的课程也要输出
		{
			cout<<i<<' '<<0<<endl;
		}
	}
}

一个简单的二维vector数组排序。

测试点1:没人选的课程也要输出

相关推荐
yugi987838几秒前
基于Matlab的晴空指数计算实现
开发语言·算法·matlab
另寻沧海12 分钟前
VS Code 内置变量与配置文件完全指南
c++·vscode
ADI_OP17 分钟前
ADAU1452的开发教程3:常规音频算法的开发(2)
算法·dsp开发·adi dsp中文资料·adi dsp·adi音频dsp·adi dsp开发教程
南桥几晴秋18 分钟前
Qt显示类控件
开发语言·c++·qt
666HZ66619 分钟前
数据结构1.0 数据结构在学什么
数据结构·算法
余瑜鱼鱼鱼24 分钟前
Java数据结构:从入门到精通(五)
数据结构
威桑27 分钟前
交叉编译过程中的踩坑与收获
linux·c++·arm·交叉编译
君义_noip29 分钟前
信息学奥赛一本通 1951:【10NOIP普及组】导弹拦截 | 洛谷 P1158 [NOIP 2010 普及组] 导弹拦截
c++·算法·csp-j·信息学奥赛
环黄金线HHJX.29 分钟前
《QuantumTuan ⇆ QT:Qt》
人工智能·qt·算法·编辑器·量子计算
jz_ddk30 分钟前
[实战] 射频相位噪声单位转换:从dBc/Hz到rad
算法·rf·射频·相位噪声·相噪