PAT1039

卡两样东西,一个是string的map,另一个是cin,cout

谢谢PAT让我感受到了OI的风采

 1 #include <iostream>
 2 #include <vector>
 3 #include <string>
 4 #include <fstream>
 5 #include <map>
 6 #include <algorithm>
 7 
 8 using namespace std;
 9 
10 //#define OJ
11 
12 #ifdef OJ
13 #define fin cin
14 #endif
15 
16 int hash_str(const char *str){
17     return (str[0] - 'A') * 26 * 26 * 10 + (str[1] - 'A') * 26 * 10 + (str[2] - 'A') * 10 + (str[3] - '0');
18 }
19 
20 vector<int> student_course[26 * 26 * 26 * 10];
21 
22 int main(){
23 #ifndef OJ
24     ifstream fin("in.data");
25 #endif
26 
27     ios::sync_with_stdio(NULL);
28 
29     int N, K;
30     fin >> N >> K;
31 
32     char name[5];
33 
34     for (int i = 0; i < K; i++){
35         int idx, num;
36         fin >> idx >> num;
37 
38         for (int j = 0; j < num; j++){
39             fin >> name;
40             student_course[hash_str(name)].push_back(idx);
41         }
42     }
43 
44     for (int i = 0; i < N; i++){
45         fin >> name;
46 
47         vector<int> &course_idx = student_course[hash_str(name)];
48         sort(course_idx.begin(), course_idx.end());
49 
50         printf("%s %d", name, course_idx.size());
51         for (int j = 0; j < course_idx.size(); j++){
52             printf(" %d", course_idx[j]);
53         }
54 
55         printf("\n");
56     }
57 
58     return 0;
59 }

 

posted @ 2014-11-14 20:42  EpisodeXI  阅读(142)  评论(0编辑  收藏  举报