/ SeriousOJ /

Record Detail

Accepted


  
# Status Time Cost Memory Cost
#1 Accepted 3ms 532.0 KiB
#2 Accepted 738ms 740.0 KiB
#3 Accepted 731ms 648.0 KiB
#4 Accepted 748ms 688.0 KiB
#5 Accepted 728ms 788.0 KiB
#6 Accepted 758ms 704.0 KiB
#7 Accepted 775ms 804.0 KiB
#8 Accepted 736ms 788.0 KiB
#9 Accepted 717ms 776.0 KiB
#10 Accepted 719ms 744.0 KiB
#11 Accepted 738ms 624.0 KiB
#12 Accepted 749ms 688.0 KiB
#13 Accepted 733ms 780.0 KiB
#14 Accepted 737ms 716.0 KiB
#15 Accepted 720ms 684.0 KiB
#16 Accepted 719ms 816.0 KiB
#17 Accepted 728ms 628.0 KiB
#18 Accepted 709ms 748.0 KiB
#19 Accepted 733ms 576.0 KiB
#20 Accepted 736ms 828.0 KiB
#21 Accepted 745ms 728.0 KiB
#22 Accepted 664ms 1.137 MiB
#23 Accepted 788ms 1.02 MiB
#24 Accepted 758ms 1.172 MiB
#25 Accepted 737ms 1012.0 KiB
#26 Accepted 748ms 1020.0 KiB
#27 Accepted 769ms 1.164 MiB
#28 Accepted 697ms 972.0 KiB
#29 Accepted 797ms 1.121 MiB
#30 Accepted 656ms 1.141 MiB
#31 Accepted 702ms 916.0 KiB
#32 Accepted 332ms 2.738 MiB
#33 Accepted 337ms 2.582 MiB
#34 Accepted 330ms 2.586 MiB
#35 Accepted 337ms 2.602 MiB
#36 Accepted 336ms 2.633 MiB
#37 Accepted 148ms 3.52 MiB
#38 Accepted 145ms 3.625 MiB
#39 Accepted 149ms 3.625 MiB
#40 Accepted 149ms 3.52 MiB
#41 Accepted 149ms 3.52 MiB
#42 Accepted 1259ms 7.297 MiB
#43 Accepted 1217ms 7.246 MiB
#44 Accepted 1229ms 7.305 MiB
#45 Accepted 1346ms 1.453 MiB
#46 Accepted 1365ms 1.457 MiB
#47 Accepted 1338ms 1.457 MiB
#48 Accepted 1344ms 1.457 MiB
#49 Accepted 1314ms 2.203 MiB
#50 Accepted 1306ms 2.211 MiB

Code

#include <bits/stdc++.h>

using namespace std;

#define int long long

int map_max(map<char, int> mp) {
    int max_val=0;
    for(auto elem:mp) max_val=max(max_val, elem.second);
    return max_val;
}

int32_t main() {
    int t;
    cin >> t;
    for(int q=0; q<t; ++q) {
        int ra, length;
        cin >> ra >> length;
        string arr[ra];
        for(int i=0; i<ra; ++i) cin >> arr[i];
        int max_score=0, score=0;
        vector<pair<map<char,int>, map<char,int>>> values(length);
        //ilk kesite göre harfleri al
        for(int j=0; j<length; ++j)
        for(auto str : arr) {
            //Her stringin o indexi için vectorun o index kısmındaki o array harfini 1 artır.
            values[j].second[str[j]]++;
        }
        //Kesit=0 için max değeri bul
        for(auto elem : values) score+=map_max(elem.first);
        for(auto elem : values) score+=map_max(elem.second);
        max_score=max(max_score, score);
        //Kesitler
        for(int i=1; i<ra; ++i) {
            score=0;
            //(i-1)ci stringin her karakteri için vec[i].first[char] artır vec[i].second[char] azalt.
            for(int j=0; j<length; ++j) {values[j].first[arr[i-1][j]]++; values[j].second[arr[i-1][j]]--;}
            //Yeni skoru bul
            for(auto elem : values) score+=map_max(elem.first);
            for(auto elem : values) score+=map_max(elem.second);
            max_score=max(max_score, score);
        }
        cout << max_score << endl;
    }
    return 0;
}

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:38:15
Judged At
2025-02-17 16:38:15
Judged By
Score
100
Total Time
1365ms
Peak Memory
7.305 MiB