/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 532.0 KiB
#2 Accepted 32ms 788.0 KiB
#3 Accepted 30ms 788.0 KiB
#4 Accepted 31ms 848.0 KiB
#5 Accepted 31ms 840.0 KiB
#6 Accepted 31ms 788.0 KiB
#7 Accepted 31ms 832.0 KiB
#8 Accepted 32ms 840.0 KiB
#9 Accepted 31ms 788.0 KiB
#10 Accepted 30ms 820.0 KiB
#11 Accepted 34ms 820.0 KiB
#12 Accepted 31ms 788.0 KiB
#13 Accepted 31ms 788.0 KiB
#14 Accepted 31ms 788.0 KiB
#15 Accepted 31ms 788.0 KiB
#16 Accepted 30ms 844.0 KiB
#17 Accepted 30ms 796.0 KiB
#18 Accepted 31ms 832.0 KiB
#19 Accepted 31ms 836.0 KiB
#20 Accepted 31ms 856.0 KiB
#21 Accepted 58ms 844.0 KiB
#22 Accepted 33ms 3.211 MiB
#23 Accepted 28ms 2.586 MiB
#24 Accepted 58ms 3.074 MiB
#25 Accepted 27ms 2.52 MiB
#26 Accepted 35ms 3.207 MiB
#27 Accepted 32ms 3.176 MiB
#28 Accepted 27ms 2.551 MiB
#29 Accepted 31ms 3.352 MiB
#30 Accepted 30ms 3.066 MiB
#31 Accepted 30ms 3.07 MiB
#32 Accepted 29ms 956.0 KiB
#33 Accepted 29ms 944.0 KiB
#34 Accepted 29ms 956.0 KiB
#35 Accepted 29ms 956.0 KiB
#36 Accepted 29ms 944.0 KiB
#37 Accepted 24ms 1.363 MiB
#38 Accepted 28ms 1.363 MiB
#39 Accepted 27ms 1.363 MiB
#40 Accepted 22ms 1.367 MiB
#41 Accepted 22ms 1.367 MiB
#42 Accepted 31ms 3.77 MiB
#43 Accepted 30ms 3.77 MiB
#44 Accepted 31ms 3.77 MiB
#45 Accepted 22ms 3.938 MiB
#46 Accepted 22ms 3.77 MiB
#47 Accepted 23ms 3.812 MiB
#48 Accepted 23ms 3.77 MiB
#49 Accepted 24ms 3.77 MiB
#50 Accepted 24ms 3.77 MiB

Code

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

#define int        long long int
#define pb         push_back
#define all(x)     x.begin(),x.end()
#define allr(x)    x.rbegin(),x.rend()
#define ii         pair<int,int>
#define endl       '\n'

void pipra(int tc) {
    int n, m;
    cin >> n >> m;
    vector<string> a(n);
    for(int i = 0 ; i < n ; i++)
        cin >> a[i];
    vector<vector<int>> prefix(n + 1, vector<int> (m));
    vector<vector<int>> suffix(n + 1, vector<int> (m));
    for(int i = 0 ; i < m ; i++) {
        int mx = 0;
        map<char,int> mp;
        for(int j = 0 ; j < n ; j++) {
            mp[a[j][i]]++;
            mx = max(mx, mp[a[j][i]]);
            prefix[j][i] = mx;
        }
    }
    for(int i = 0 ; i < m ; i++) {
        int mx = 0;
        map<char,int> mp;
        for(int j = n - 1 ; j >= 0 ; j--) {
            mp[a[j][i]]++;
            mx = max(mx, mp[a[j][i]]);
            suffix[j][i] = mx;
        }
    }
    int ans = 0;
    for(int i = 0 ; i < n ; i++) {
        int ans1 = 0, ans2 = 0;
        for(int j = 0 ; j < m ; j++) {
            ans1 += prefix[i][j];
            ans2 += suffix[i][j];
            if(i != n - 1)
                ans1 += suffix[i + 1][j];
            if(i > 0)
                ans2 += prefix[i - 1][j];
        }
        ans = max({ans, ans1, ans2});
    }
    cout << ans << endl;
}

int32_t main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);

    int t = 1;
    cin >> t;
    for(int i = 1 ; i <= t ; i++)
        pipra(i);
    return 0;
}

Information

Submit By
Type
Submission
Problem
P1164 Simple character matching game
Language
C++17 (G++ 13.2.0)
Submit At
2025-04-07 04:17:07
Judged At
2025-04-07 04:17:07
Judged By
Score
100
Total Time
58ms
Peak Memory
3.938 MiB