标签:
Zhejiang University has 40000 students and provides 2500 courses. Now given the student name lists of all the courses, you are supposed to output the registered course list for each student who comes for a query.NON9 0
#include<iostream>
#include<vector>
#include<algorithm>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
using namespace std;
const int N=26*26*26*10;
bool compare(int a,int b){
return a<b;
}
int hash_name(char *name){
return (name[0]-'A')*26*26*10+(name[1]-'A')*26*10+(name[2]-'A')*10+(name[3]-'0');
}
int main(){
int n,k;
scanf("%d%d",&n,&k);
int i,j;
vector< vector<int> > stu(N+1);
for(i=0;i<k;i++){
int course,stu_num;
scanf("%d%d",&course,&stu_num);
for(j=0;j<stu_num;j++){
char str[5];
scanf("%s",str);
stu[hash_name(str)].push_back(course);
}
}
for(i=0;i<n;i++)
{
char str[5];
scanf("%s",str);
if(stu[hash_name(str)].size()!=0){
printf("%s %d",str,stu[hash_name(str)].size());
sort(stu[hash_name(str)].begin(),stu[hash_name(str)].end(),compare);
vector<int>::iterator iter_vec;
for(iter_vec=stu[hash_name(str)].begin();iter_vec!=stu[hash_name(str)].end();iter_vec++){
printf(" %d",*iter_vec);
}
printf("\n");
}
else
printf("%s %d\n",str,0);
}
return 0;
}
1039. Course List for Student (25)
标签:
原文地址:http://blog.csdn.net/jason_wang1989/article/details/45612751