/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 11ms 532.0 KiB
#3 Accepted 10ms 532.0 KiB
#4 Accepted 11ms 532.0 KiB
#5 Accepted 12ms 580.0 KiB
#6 Accepted 30ms 532.0 KiB
#7 Accepted 19ms 532.0 KiB
#8 Accepted 20ms 788.0 KiB
#9 Accepted 16ms 532.0 KiB
#10 Accepted 28ms 532.0 KiB
#11 Accepted 19ms 808.0 KiB
#12 Accepted 20ms 532.0 KiB
#13 Accepted 32ms 664.0 KiB
#14 Accepted 18ms 532.0 KiB
#15 Accepted 28ms 580.0 KiB
#16 Accepted 12ms 532.0 KiB
#17 Accepted 12ms 532.0 KiB
#18 Accepted 14ms 532.0 KiB
#19 Accepted 14ms 532.0 KiB
#20 Accepted 31ms 576.0 KiB
#21 Accepted 32ms 660.0 KiB
#22 Accepted 16ms 1.305 MiB
#23 Accepted 14ms 1.27 MiB
#24 Accepted 18ms 1.219 MiB
#25 Accepted 16ms 1.02 MiB
#26 Accepted 25ms 1.27 MiB
#27 Accepted 18ms 1.27 MiB
#28 Accepted 18ms 1.02 MiB
#29 Accepted 14ms 1.395 MiB
#30 Accepted 15ms 1.27 MiB
#31 Accepted 16ms 1.27 MiB
#32 Accepted 11ms 1.281 MiB
#33 Accepted 13ms 1.285 MiB
#34 Accepted 26ms 1.273 MiB
#35 Accepted 18ms 1.062 MiB
#36 Accepted 11ms 1.273 MiB
#37 Accepted 14ms 4.77 MiB
#38 Accepted 14ms 4.77 MiB
#39 Accepted 37ms 4.77 MiB
#40 Accepted 15ms 4.77 MiB
#41 Accepted 15ms 4.77 MiB
#42 Accepted 13ms 4.02 MiB
#43 Accepted 18ms 3.988 MiB
#44 Accepted 19ms 4.07 MiB
#45 Accepted 12ms 3.77 MiB
#46 Accepted 12ms 3.77 MiB
#47 Accepted 12ms 3.797 MiB
#48 Accepted 16ms 3.746 MiB
#49 Accepted 16ms 3.852 MiB
#50 Accepted 16ms 3.887 MiB

Code

#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
#define f first 
#define s second 
using namespace std;

int main(){
    // freopen("input.txt", "r", stdin);
    // freopen("output.txt", "w", stdout);

    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    int t;
    cin >> t;
    while (t--){
        ll n, m, ans = 0;
        cin >> n >> m;
        string s[n];
        ll a[m][26], v[n][m], rv[n][m];
        for (int i = 0; i < m; i++){
          for (int j = 0; j < 26; j++){
            a[i][j] = 0;
          }
        }
        for (int i = 0; i < n; i++){
          cin >> s[i];
          for (int j = 0; j < m; j++){
            a[j][s[i][j] - 97]++;
            ll mx  = 0;
            for (int k = 0; k < 26; k++){
              mx = max(mx, a[j][k]);
            }
            v[i][j] = mx;
          }
        }
        for (int i = 0; i < m; i++){
          for (int j = 0; j < 26; j++){
            a[i][j] = 0;
          }
        } 
        for (int i = n - 1; i >= 0; i--){
          for (int j = 0; j < m; j++){
            a[j][s[i][j] - 97]++;
            ll mx  = 0;
            for (int k = 0; k < 26; k++){
              mx = max(mx, a[j][k]);
            }
            rv[i][j] = mx;
          }
        }
        if (n == 1){
          cout << m << endl;
          continue;
        }
        for (int i = 0; i < n - 1; i++){
          ll cur = 0;
          for (int j = 0; j < m; j++){
            cur += (v[i][j] + rv[i + 1][j]);
          }
          ans = max(ans, cur);
        }   
        cout << ans << endl;
    }
}

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 16:07:30
Judged At
2025-02-17 16:07:30
Judged By
Score
100
Total Time
37ms
Peak Memory
4.77 MiB