//
// main.cpp
// PATA1039
//
// Created by Phoenix on 2018/2/11.
// Copyright © 2018年 Phoenix. All rights reserved.
//
#include <iostream>
#include <cstdio>
#include <vector>
#include <algorithm>
using namespace std;
const int maxn = 26 * 26 * 26 * 10 + 20;
struct Student {
vector<int> v;
}stu[maxn];
int charToNum(char a[]){
int ans = 0;
for(int i = 0; i < 3; i++) {
ans = ans * 26 + a[i] - 'A';
}
ans = ans * 10 + a[3] - '0';
return ans;
}
int main(int argc, const char * argv[]) {
int n, k;
char str[5];
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);
int s = charToNum(str);
stu[s].v.push_back(course);
}
}
for(int i = 0; i < n; i++) {
scanf("%s", str);
int s = charToNum(str);
sort(stu[s].v.begin(), stu[s].v.end());
printf("%s %d", str, stu[s].v.size());
for(int j = 0; j < stu[s].v.size(); j++) {
printf(" %d", stu[s].v[j]);
}
printf("\n");
}
return 0;
}
PATA1039题解
最新推荐文章于 2021-03-07 12:33:22 发布