/ SeriousOJ /

Record Detail

Wrong Answer


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 540.0 KiB
#2 Accepted 31ms 796.0 KiB
#3 Accepted 30ms 844.0 KiB
#4 Accepted 30ms 788.0 KiB
#5 Accepted 32ms 796.0 KiB
#6 Accepted 32ms 796.0 KiB
#7 Accepted 30ms 796.0 KiB
#8 Wrong Answer 32ms 860.0 KiB
#9 Accepted 30ms 864.0 KiB
#10 Accepted 30ms 796.0 KiB
#11 Accepted 30ms 844.0 KiB
#12 Accepted 31ms 984.0 KiB
#13 Accepted 31ms 832.0 KiB
#14 Accepted 30ms 796.0 KiB
#15 Accepted 31ms 900.0 KiB
#16 Accepted 30ms 848.0 KiB
#17 Accepted 29ms 796.0 KiB
#18 Accepted 32ms 796.0 KiB
#19 Accepted 31ms 848.0 KiB
#20 Accepted 30ms 796.0 KiB
#21 Accepted 31ms 796.0 KiB
#22 Accepted 32ms 3.211 MiB
#23 Accepted 28ms 2.578 MiB
#24 Accepted 33ms 3.086 MiB
#25 Accepted 27ms 2.551 MiB
#26 Accepted 35ms 3.188 MiB
#27 Accepted 31ms 3.129 MiB
#28 Accepted 26ms 2.551 MiB
#29 Accepted 31ms 3.18 MiB
#30 Accepted 29ms 3.105 MiB
#31 Accepted 30ms 3.062 MiB
#32 Accepted 29ms 940.0 KiB
#33 Accepted 28ms 956.0 KiB
#34 Accepted 28ms 956.0 KiB
#35 Accepted 28ms 1.027 MiB
#36 Accepted 28ms 956.0 KiB
#37 Accepted 21ms 1.371 MiB
#38 Accepted 21ms 1.395 MiB
#39 Accepted 21ms 1.488 MiB
#40 Accepted 21ms 1.391 MiB
#41 Accepted 21ms 1.371 MiB
#42 Accepted 31ms 3.777 MiB
#43 Accepted 31ms 3.871 MiB
#44 Accepted 31ms 3.777 MiB
#45 Accepted 21ms 3.777 MiB
#46 Accepted 21ms 3.777 MiB
#47 Accepted 21ms 3.777 MiB
#48 Accepted 21ms 3.77 MiB
#49 Accepted 23ms 3.777 MiB
#50 Accepted 23ms 3.82 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;
        if(i == 0) {
            for(int j = 0 ; j < m ; j++)
                ans1 += suffix[i][j];
        }
        else if(i == n - 1) {
            for(int j = 0 ; j < m ; j++)
                ans1 += prefix[i][j];
        }
        else {
            for(int j = 0 ; j < m ; j++) {
                ans1 += prefix[i][j] + suffix[i + 1][j];
                ans2 += prefix[i - 1][j] + suffix[i][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:10:11
Judged At
2025-04-07 04:10:11
Judged By
Score
98
Total Time
35ms
Peak Memory
3.871 MiB