PAT 1039. Course List for Student (25)
http://www.patest.cn/contests/pat-a-practise/1039
#include<cstdio> #include<map> #include<set> #include<string> using namespace std; int n, k; char str[20]; int myhash(char *s) { return (s[0] - 'A') * 26 * 26 * 10 + (s[1] - 'A') * 26 * 10 + (s[2] - 'A') * 10 + s[3] - '0'; } map<int, set<int> > table; int main() { scanf("%d%d", &n, &k); for(int i = 0; i < k; ++i) { int course, m; scanf("%d%d", &course, &m); for(int j = 0; j < m; ++j) { scanf("%s", str); table[myhash(str)].insert(course); } } for(int i = 0; i < n; ++i) { scanf("%s", str); set<int> courses = table[myhash(str)]; int size = courses.size(); printf("%s %d", str, size); for(set<int>::iterator iter = courses.begin(); iter != courses.end(); ++iter) { printf(" %d", *iter); } puts(""); } return 0; }

浙公网安备 33010602011771号