2516 {
2517 int n;
2518 int m;
2519 cin >> n >> m;
2520 vector<problem> problems(m);
2521 map<pair<int, char>, int> noe;
2522 int max_cnt = 0;
2523 for(int i = 0; i < m; i++) {
2527 p.
ca = unordered_set<char>();
2528 for(
int j = 0; j < p.
noca; j++) {
2529 char ca;
2530 cin >> ca;
2532 }
2533 problems[i] = p;
2534 }
2535 char ch;
2536 for(int i = 0; i < n; i++) {
2537 double score = 0;
2538 for(int j = 0; j < m; j++) {
2539 unordered_set<char> as;
2540 cin >> ch;
2541 int noa;
2542 cin >> noa;
2543 bool flag = true;
2544 for(int k = 0; k < noa; k++) {
2548 if(!problems[j].ca.contains(
a)) {
2549 noe[make_pair(problems[j].
id,
a)]++;
2550 max_cnt = max(max_cnt, noe[make_pair(problems[j].
id,
a)]);
2551 flag = false;
2552 }
2553 }
2554 cin >> ch;
2555 for(auto a: problems[j].ca) {
2556 if(!as.contains(a)) {
2557 noe[make_pair(problems[j].id, a)]++;
2558 max_cnt = max(max_cnt, noe[make_pair(problems[j].id, a)]);
2559 }
2560 }
2561 if(!flag) {
2562 continue;
2563 }
2564 if(noa == problems[j].noca) {
2565 score += problems[j].score;
2566 } else {
2567 score += static_cast<double>(problems[j].score) / 2;
2568 }
2569 }
2570 cout << fixed << setprecision(1) << score << endl;
2571 }
2572 if(noe.empty()) {
2573 cout << "Too simple";
2574 } else {
2575 for(const auto &[k, cnt]: noe) {
2576 if(cnt == max_cnt) {
2577 const auto &[id, a] = k;
2578 cout << cnt << ' ' << id << '-' << a << endl;
2579 }
2580 }
2581 }
2582 return 0;
2583 }
unordered_set< char > ca
正确选项