/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 10ms 532.0 KiB
#3 Accepted 10ms 536.0 KiB
#4 Accepted 14ms 532.0 KiB
#5 Accepted 14ms 532.0 KiB
#6 Accepted 14ms 532.0 KiB
#7 Accepted 14ms 664.0 KiB
#8 Accepted 17ms 788.0 KiB
#9 Accepted 14ms 532.0 KiB
#10 Accepted 13ms 532.0 KiB
#11 Accepted 11ms 580.0 KiB
#12 Accepted 12ms 532.0 KiB
#13 Accepted 15ms 532.0 KiB
#14 Accepted 10ms 532.0 KiB
#15 Accepted 10ms 648.0 KiB
#16 Accepted 11ms 700.0 KiB
#17 Accepted 10ms 648.0 KiB
#18 Accepted 11ms 580.0 KiB
#19 Accepted 11ms 532.0 KiB
#20 Accepted 12ms 532.0 KiB
#21 Accepted 14ms 672.0 KiB
#22 Accepted 17ms 1.492 MiB
#23 Accepted 19ms 1.031 MiB
#24 Accepted 22ms 1.199 MiB
#25 Accepted 9ms 1.078 MiB
#26 Accepted 16ms 1.672 MiB
#27 Accepted 14ms 1.129 MiB
#28 Accepted 13ms 1.234 MiB
#29 Accepted 14ms 1.25 MiB
#30 Accepted 13ms 1.02 MiB
#31 Accepted 14ms 1.582 MiB
#32 Accepted 12ms 1.098 MiB
#33 Accepted 12ms 1.098 MiB
#34 Accepted 13ms 1.102 MiB
#35 Accepted 15ms 1.023 MiB
#36 Accepted 19ms 1.09 MiB
#37 Accepted 59ms 5.77 MiB
#38 Accepted 44ms 5.77 MiB
#39 Accepted 42ms 5.719 MiB
#40 Accepted 43ms 5.77 MiB
#41 Accepted 44ms 5.773 MiB
#42 Accepted 7ms 1.27 MiB
#43 Accepted 10ms 1.27 MiB
#44 Accepted 16ms 1.172 MiB
#45 Accepted 16ms 788.0 KiB
#46 Accepted 16ms 788.0 KiB
#47 Accepted 16ms 836.0 KiB
#48 Accepted 16ms 832.0 KiB
#49 Accepted 15ms 788.0 KiB
#50 Accepted 16ms 836.0 KiB

Code

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

inline void solve()
{
    int n, m;
    cin >> n >> m;

    vector<string> S(n);
    for(auto& i : S ) cin >> i;

    vector< vector<int> > B(m, vector<int>(26,0) ), F(m, vector<int>(26, 0) );
    vector<int> bs(n);

    for(int i=n-1; i >= 0; --i){
        for(int k=0; k < m; ++k){
            B[k][ S[i][k] - 'a' ] ++;
            bs[i] += *max_element(B[k].begin(), B[k].end() );
        }
    }

    int ans = bs[0];
    for(int i=0; i < n; ++i){
        int cur = 0;
        for(int k=0; k < m; ++k){
            F[k][ S[i][k] - 'a' ] ++;
            cur += *max_element(F[k].begin(), F[k].end() );
        }
        ans = max(ans, cur + ( i+1 < n ? bs[i+1] : 0 ) );
    }
    cout << ans << "\n";
}

int main()
{
    ios::sync_with_stdio(false); cin.tie(nullptr);
    int t = 1;
    cin >> t;
    for(int i=1; i <= t; ++i) solve();
    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:32:29
Judged At
2025-02-17 15:32:29
Judged By
Score
100
Total Time
59ms
Peak Memory
5.773 MiB