首页 > 代码库 > PAT1039

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 OJ11 12 #ifdef OJ13 #define fin cin14 #endif15 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 OJ24     ifstream fin("in.data");25 #endif26 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 }

 

PAT1039