/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 46ms 1.27 MiB
#3 Accepted 31ms 1.371 MiB
#4 Accepted 30ms 1.457 MiB
#5 Accepted 34ms 1.52 MiB
#6 Accepted 32ms 1.27 MiB
#7 Accepted 35ms 1.48 MiB
#8 Accepted 32ms 1.836 MiB
#9 Accepted 57ms 1.32 MiB
#10 Accepted 30ms 1.27 MiB
#11 Accepted 32ms 1.504 MiB
#12 Accepted 31ms 1.27 MiB
#13 Accepted 35ms 1.465 MiB
#14 Accepted 32ms 1.27 MiB
#15 Accepted 57ms 1.344 MiB
#16 Accepted 60ms 1.398 MiB
#17 Accepted 34ms 1.316 MiB
#18 Accepted 32ms 1.566 MiB
#19 Accepted 52ms 1.457 MiB
#20 Accepted 32ms 1.316 MiB
#21 Accepted 59ms 1.27 MiB
#22 Accepted 69ms 9.781 MiB
#23 Accepted 41ms 9.23 MiB
#24 Accepted 43ms 9.871 MiB
#25 Accepted 41ms 9.129 MiB
#26 Accepted 48ms 9.879 MiB
#27 Accepted 43ms 10.012 MiB
#28 Accepted 39ms 9.285 MiB
#29 Accepted 72ms 9.754 MiB
#30 Accepted 37ms 9.191 MiB
#31 Accepted 42ms 9.617 MiB
#32 Accepted 42ms 9.316 MiB
#33 Accepted 42ms 9.105 MiB
#34 Accepted 42ms 9.328 MiB
#35 Accepted 41ms 9.328 MiB
#36 Accepted 41ms 9.27 MiB
#37 Accepted 49ms 16.316 MiB
#38 Accepted 48ms 16.438 MiB
#39 Accepted 51ms 16.559 MiB
#40 Accepted 75ms 16.52 MiB
#41 Accepted 48ms 16.52 MiB
#42 Accepted 100ms 81.051 MiB
#43 Accepted 102ms 81.02 MiB
#44 Accepted 102ms 80.918 MiB
#45 Accepted 101ms 80.148 MiB
#46 Accepted 100ms 80.328 MiB
#47 Accepted 100ms 80.367 MiB
#48 Accepted 102ms 80.273 MiB
#49 Accepted 101ms 79.52 MiB
#50 Accepted 98ms 79.52 MiB

Code

#include <bits/stdc++.h>

using namespace std;
using ll = long long;
const ll mod = 1e9 + 7;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    ll testcases;
    cin >> testcases;
    while (testcases--) {

        ll n, m;
        cin >> n >> m;
        vector < string > arr;
        for (ll i = 0; i < n; i++) {
            string s;
            cin >> s;
            arr.push_back(s);
        }
        string t;
        for (ll i = 0; i < m; i++) t.push_back('A');
        arr.push_back(t);

        ll pre[n + 1][m][26];
        memset(pre, 0, sizeof(pre));
        for (ll i = 0; i < n; i++) {
            for (ll j = 0; j < m; j++) {
                for (ll k = 0; k < 26; k++) {
                    if (arr[i][j] - 'a' == k) pre[i][j][k] = 1;
                }
            }
            if (i) {
                for (ll j = 0; j < m; j++) {
                    for (ll k = 0; k < 26; k++) {
                        pre[i][j][k] += pre[i - 1][j][k];
                    }
                }
            }
        }
        ll suff[n + 1][m][26];
        memset(suff , 0, sizeof(suff));
        for (ll i = n - 1 ; i >= 0 ; i--) {
            for (ll j = 0 ; j < m ; j++) {
                for (ll k = 0 ; k < 26 ; k++) {
                    if (arr[i][j] - 'a' == k) suff[i][j][k] = 1;
                    suff[i][j][k] += suff[i + 1][j][k];
                }
            }
        }
        
        
        ll ans = 0;
        for(ll i = 0 ; i < n ; i++){
            ll total = 0;
            for(ll j = 0 ; j < m ; j++){
                ll curr = 0 , op = 0;
                for(ll k = 0 ; k < 26 ; k++) op = max(op , suff[i + 1][j][k]);
                for(ll k = 0 ; k < 26 ; k++) curr = max(curr , op + pre[i][j][k]);
                total += curr;
            }
            ans = max(ans , total);
        }
        
        cout << ans << "\n";
        
    }
    return 0;
}
// Author : Raj (raj_singh35)

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:28:12
Judged At
2025-02-17 15:28:12
Judged By
Score
100
Total Time
102ms
Peak Memory
81.051 MiB