/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 540.0 KiB
#2 Accepted 11ms 664.0 KiB
#3 Accepted 10ms 896.0 KiB
#4 Accepted 11ms 540.0 KiB
#5 Accepted 18ms 692.0 KiB
#6 Accepted 10ms 876.0 KiB
#7 Accepted 10ms 540.0 KiB
#8 Accepted 10ms 540.0 KiB
#9 Accepted 10ms 540.0 KiB
#10 Accepted 9ms 540.0 KiB
#11 Accepted 10ms 540.0 KiB
#12 Accepted 10ms 700.0 KiB
#13 Accepted 10ms 540.0 KiB
#14 Accepted 10ms 668.0 KiB
#15 Accepted 10ms 540.0 KiB
#16 Accepted 10ms 540.0 KiB
#17 Accepted 10ms 672.0 KiB
#18 Accepted 11ms 592.0 KiB
#19 Accepted 10ms 840.0 KiB
#20 Accepted 10ms 812.0 KiB
#21 Accepted 13ms 796.0 KiB
#22 Accepted 13ms 1.453 MiB
#23 Accepted 10ms 1.516 MiB
#24 Accepted 12ms 1.449 MiB
#25 Accepted 10ms 1.086 MiB
#26 Accepted 14ms 1.531 MiB
#27 Accepted 13ms 1.34 MiB
#28 Accepted 9ms 1.203 MiB
#29 Accepted 12ms 1.504 MiB
#30 Accepted 10ms 1.539 MiB
#31 Accepted 12ms 1.73 MiB
#32 Accepted 11ms 1.02 MiB
#33 Accepted 11ms 796.0 KiB
#34 Accepted 11ms 840.0 KiB
#35 Accepted 11ms 796.0 KiB
#36 Accepted 11ms 796.0 KiB
#37 Accepted 39ms 2.723 MiB
#38 Accepted 41ms 2.598 MiB
#39 Accepted 39ms 2.609 MiB
#40 Accepted 39ms 2.797 MiB
#41 Accepted 39ms 2.598 MiB
#42 Accepted 10ms 2.242 MiB
#43 Accepted 9ms 2.277 MiB
#44 Accepted 9ms 2.52 MiB
#45 Accepted 9ms 2.324 MiB
#46 Accepted 12ms 2.293 MiB
#47 Accepted 9ms 2.277 MiB
#48 Accepted 9ms 2.277 MiB
#49 Accepted 9ms 2.277 MiB
#50 Accepted 9ms 2.523 MiB

Code

#include <bits/stdc++.h>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);

    int Tc;
    cin >> Tc;

    while (Tc--) {
        int N, M;
        cin >> N >> M;

        vector<string> rounds(N);
        for (int i = 0; i < N; ++i) {
            cin >> rounds[i];
        }

        vector<vector<int>> prefix(M, vector<int>(N + 1, 0));
        vector<vector<int>> suffix(M, vector<int>(N + 1, 0));

        for (int j = 0; j < M; ++j) {
            vector<int> freq(26, 0);
            for (int i = 0; i < N; ++i) {
                char c = rounds[i][j];
                freq[c - 'a']++;
                int current_max = *max_element(freq.begin(), freq.end());
                prefix[j][i + 1] = current_max;
            }

            fill(freq.begin(), freq.end(), 0);
            for (int i = N - 1; i >= 0; --i) {
                char c = rounds[i][j];
                freq[c - 'a']++;
                int current_max = *max_element(freq.begin(), freq.end());
                suffix[j][i] = current_max;
            }
        }

        vector<int> sum_prefix(N + 1, 0);
        vector<int> sum_suffix(N + 1, 0);

        for (int j = 0; j < M; ++j) {
            for (int k = 0; k <= N; ++k) {
                sum_prefix[k] += prefix[j][k];
                sum_suffix[k] += suffix[j][k];
            }
        }

        int ans = 0;
        for (int k = 0; k <= N; ++k) {
            ans = max(ans, sum_prefix[k] + sum_suffix[k]);
        }

        cout << ans << '\n';
    }

    return 0;
}

Information

Submit By
Type
Submission
Problem
P1164 Simple character matching game
Contest
Brain Booster #8
Language
C++17 (G++ 13.2.0)
Submit At
2025-02-17 15:59:17
Judged At
2025-02-17 15:59:17
Judged By
Score
100
Total Time
41ms
Peak Memory
2.797 MiB