【PAT】【Advanced Level】1047. Student List for Course (25)
来源:互联网 发布:java八种基本类型 编辑:程序博客网 时间:2024/05/18 08:46
1047. Student List for Course (25)
Zhejiang University has 40000 students and provides 2500 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 (<=40000), the total number of students, and K (<=2500), 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 5ZOE1 2 4 5ANN0 3 5 2 1BOB5 5 3 4 2 1 5JOE4 1 2JAY9 4 1 2 5 4FRA8 3 4 2 5DON2 2 4 5AMY7 1 5KAT3 3 5 4 2LOR6 4 2 4 1 5Sample Output:
1 4ANN0BOB5JAY9LOR62 7ANN0BOB5FRA8JAY9JOE4KAT3LOR63 1BOB54 7BOB5DON2FRA8JAY9KAT3LOR6ZOE15 9AMY7ANN0BOB5DON2FRA8JAY9KAT3LOR6ZOE1
https://www.patest.cn/contests/pat-a-practise/1047
思路:
将姓名映射为整数
CODE:
#include<iostream>#include<vector>#include<cstring>#include<cstdio>#include<string>#include<algorithm>#define K 2510using namespace std;vector<int> vec[K];int cmp(int a, int b){return a<b;}int main(){int n,k;scanf("%d%d",&n,&k);for (int i=0;i<n;i++){char* tt=(char *)malloc(4);scanf("%s",tt);int temp=(tt[0]-'A')*26*26*10+(tt[1]-'A')*26*10+(tt[2]-'A')*10+(tt[3]-'0');int m;//cout<<tt<<endl;scanf("%d",&m);for(int j=0;j<m;j++){int c;scanf("%d",&c);vec[c].push_back(temp);}}for (int i=1;i<=k;i++){sort(vec[i].begin(),vec[i].end(),cmp);printf("%d %d\n",i,vec[i].size());for (int j=0;j<vec[i].size();j++){int te=vec[i][j];char a='A'+te/(26*26*10);char b='A'+(te/(26*10))%26;char c='A'+(te/10)%26;char d='0'+te%10;printf("%c%c%c%c\n",a,b,c,d);}}return 0;}
- 【C++】PAT(advanced level)1047. Student List for Course (25)
- 【PAT】【Advanced Level】1047. Student List for Course (25)
- 【C++】PAT(advanced level)1039. Course List for Student (25)
- PAT (Advanced Level) Practis 1039 Course List for Student (25)
- PAT (Advanced Level) Practise 1047 Student List for Course (25)
- PAT (Advanced Level) Practise 1047 Student List for Course (25)
- PAT (Advanced Level) Practise 1039 Course List for Student (25)
- 【PAT】【Advanced Level】1039. Course List for Student (25)
- 1047. Student List for Course (25)【排序】——PAT (Advanced Level) Practise
- Pat(Advanced Level)Practice--1039(Course List for Student)
- Pat(Advanced Level)Practice--1047(Student List for Course)
- PAT (Advanced Level) 1039. Course List for Student (25) 排序,手动写哈希
- 1039. Course List for Student (25)【排序】——PAT (Advanced Level) Practise
- PAT (Advanced Level) 1047. Student List for Course (25) 哈希,排序,string与char数组的转换
- 1047. Student List for Course (25)-PAT
- 【PAT】1047. Student List for Course (25)
- PAT 1047. Student List for Course (25)
- PAT 1047. Student List for Course (25)
- 看一遍就会的CocoaPods的安装和使用教程
- RESTful API 设计指南
- 输入一个5X5的二维数组,将数组进行排序,其中一维数组按照平均值降序,一维数组内部升序排列。
- JavaScript运算符(操作符)详解(1)----复杂运算符
- exclipse报错问题
- 【PAT】【Advanced Level】1047. Student List for Course (25)
- cmd 运行php 文件
- Connect them ZOJ
- HDU6072(Kosaraju求强联通分量+位运算)
- ZigZag Conversion
- 邻接表 有向图 是否有环 C实现 (dfs
- 【PAT】【Advanced Level】1048. Find Coins (25)
- Android ContentProvider之ContentObserver内容观察者
- Linux基础