/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 1ms 324.0 KiB
#2 Accepted 22ms 600.0 KiB
#3 Accepted 25ms 860.0 KiB
#4 Accepted 24ms 536.0 KiB
#5 Accepted 22ms 788.0 KiB
#6 Accepted 23ms 716.0 KiB
#7 Accepted 24ms 844.0 KiB
#8 Accepted 22ms 788.0 KiB
#9 Accepted 27ms 788.0 KiB
#10 Accepted 23ms 656.0 KiB
#11 Accepted 24ms 836.0 KiB
#12 Accepted 24ms 580.0 KiB
#13 Accepted 24ms 712.0 KiB
#14 Accepted 24ms 536.0 KiB
#15 Accepted 23ms 648.0 KiB
#16 Accepted 34ms 788.0 KiB
#17 Accepted 23ms 788.0 KiB
#18 Accepted 21ms 684.0 KiB
#19 Accepted 21ms 532.0 KiB
#20 Accepted 22ms 684.0 KiB
#21 Accepted 22ms 776.0 KiB
#22 Accepted 19ms 1.312 MiB
#23 Accepted 22ms 1.27 MiB
#24 Accepted 23ms 1.484 MiB
#25 Accepted 18ms 1.066 MiB
#26 Accepted 21ms 1.312 MiB
#27 Accepted 20ms 1.312 MiB
#28 Accepted 18ms 1.02 MiB
#29 Accepted 26ms 1.41 MiB
#30 Accepted 20ms 1.441 MiB
#31 Accepted 19ms 1.18 MiB
#32 Accepted 37ms 2.848 MiB
#33 Accepted 36ms 2.855 MiB
#34 Accepted 37ms 2.77 MiB
#35 Accepted 37ms 2.855 MiB
#36 Accepted 36ms 2.844 MiB
#37 Accepted 29ms 5.02 MiB
#38 Accepted 29ms 5.164 MiB
#39 Accepted 29ms 5.02 MiB
#40 Accepted 30ms 5.062 MiB
#41 Accepted 46ms 5.168 MiB
#42 Accepted 40ms 7.055 MiB
#43 Accepted 39ms 7.078 MiB
#44 Accepted 39ms 7.02 MiB
#45 Accepted 27ms 1.27 MiB
#46 Accepted 28ms 1.465 MiB
#47 Accepted 28ms 1.316 MiB
#48 Accepted 28ms 1.23 MiB
#49 Accepted 32ms 2.02 MiB
#50 Accepted 57ms 2.176 MiB

Code

#include<bits/stdc++.h>
#include<ext/pb_ds/assoc_container.hpp>
#include<ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
#define ll long long int
#define endl '\n'
typedef tree<ll, null_type, less<ll>, rb_tree_tag, tree_order_statistics_node_update> pbds; // find_by_order, order_of_key
#define all(v) v.begin(), v.end()
#define yes cout << "YES" << endl        
#define no cout << "NO" << endl          
#define M 1000000007                     
#define lcm(a, b) a *b / gcd(a, b)       
#define memz(a) memset(a, 0, sizeof(a))  
#define memn(a) memset(a, -1, sizeof(a)) 
ll dx[]={1,0,-1,0,1,-1,-1,1};
ll dy[]={0,1,0,-1,1,1,-1,-1};

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    ll tst;
    cin>>tst;
    for(ll test=1;test<=tst;test++)
    {
        //cout<<"Case "<<test<<": ";
        ll n,m;
        cin>>n>>m;
        map<char,ll>mp[m];
        string in[n];
        ll mx[m]={0};
        ll fmx[n]={0};
        for(int i=0;i<n;i++)
        {
            cin>>in[i];
            ll c=0;
            for(int j=0;j<m;j++)
            {
                mp[j][in[i][j]]++;
                mx[j]=max(mx[j],mp[j][in[i][j]]);
                c+=mx[j];
            }
            fmx[i]=c;
        }
        map<char,ll>mp1[m];
        ll mx1[m]={0};
        ll bmx[n]={0};
        for(int i=n-1;i>=0;i--)
        {
            ll c=0;
            for(int j=0;j<m;j++)
            {
                mp1[j][in[i][j]]++;
                mx1[j]=max(mx1[j],mp1[j][in[i][j]]);
                c+=mx1[j];
            }
            bmx[i]=c;
        }
        ll ans=max(fmx[n-1],bmx[0]);
        for(int i=0;i<n-1;i++)
        {
            ans=max(ans,fmx[i]+bmx[i+1]);
        }
        cout<<ans<<endl;
        // cout<<ans<<endl;
        // for(int i=0;i<n;i++)cout<<fmx[i]<<" ";
        // cout<<endl;
        // for(int i=0;i<n;i++)cout<<bmx[i]<<" ";
    }
}

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:20:25
Judged At
2025-02-17 15:20:25
Judged By
Score
100
Total Time
57ms
Peak Memory
7.078 MiB