1307C - Cow and Message - CodeForces Solution


brute force dp math strings *1500

Please click on ads to support us..

C++ Code:

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

void help(){
    string s; cin >> s;
    map<char,vector<ll>>mp;
    for(int i = 0; i < s.size() ; i++){
        mp[s[i]].push_back(i);
    }
    //  for(auto it : mp){
    //      cout << it.first << " -> ";
    //      for(auto it1 : it.second){
    //          cout << it1 << " ";
    //      }
    //      cout << endl;
    //  }
     ll ans = 0;
     for(auto it1 : mp){
         vector<ll>temp1 = it1.second;
         for(auto it2 : mp){
             vector<ll>temp2 = it2.second;
             ll n_ = temp2.size();
             ll count = 0;
             if(it1.first == it2.first){
                 count = max(n_,(n_*(n_-1))/2);
                 ans = max(ans,count);
                 continue;
             }
             for(int i = 0; i < temp1.size() ; i++){
                 ll idx = lower_bound(temp2.begin(),temp2.end(),temp1[i])-temp2.begin();
                 count += n_-idx;
             }
            
             ans = max(ans,count);
         }
     }
     cout << ans << endl;
}
int main() {
     ll t = 1;
    while(t--){
       help();   
    }
}


Comments

Submit
0 Comments
More Questions

50A - Domino piling
479A - Expression
1480A - Yet Another String Game
1216C - White Sheet
1648A - Weird Sum
427A - Police Recruits
535A - Tavas and Nafas
581A - Vasya the Hipster
1537B - Bad Boy
1406B - Maximum Product
507B - Amr and Pins
379A - New Year Candles
1154A - Restoring Three Numbers
750A - New Year and Hurry
705A - Hulk
492B - Vanya and Lanterns
1374C - Move Brackets
1476A - K-divisible Sum
1333A - Little Artem
432D - Prefixes and Suffixes
486A - Calculating Function
1373B - 01 Game
1187A - Stickers and Toys
313B - Ilya and Queries
579A - Raising Bacteria
723A - The New Year Meeting Friends
302A - Eugeny and Array
1638B - Odd Swap Sort
1370C - Number Game
1206B - Make Product Equal One