ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 1307-C, *1500
    코드포스 2022. 1. 7. 01:02
     

    Problem - C - Codeforces

     

    codeforces.com

     

     

    풀이

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    #include <bits/stdc++.h>
    #define endl "\n"
    #define ooop(i, n) for(int i = 0; i < n; i++)
    #define loop(i, n) for(int i = 1; i <= n; i++)
    #define all(v) (v).begin(), (v).end()
     
    using namespace std;
    typedef long long ll;
    typedef pair<intint> pi;
    typedef pair<ll, ll> pl;
     
    ll i_j(int i, int j, map<intvector<int> >& d)
    {
        ll ret = 0;
        for(const auto l: d[i]){
            ret += d[j].end() - lower_bound(all(d[j]), l);
        }
        return ret;
    }
     
    int main()
    {
        ios::sync_with_stdio(false);
        cin.tie(0), cout.tie(0);
     
        string s; cin >> s;
        map<intvector<int> > d;
        ooop(i, s.size()) d[s[i]-'a'].emplace_back(i);
     
        ll res = 0;
        for(const auto& [_, v]: d){
            if(res < v.size()) res = v.size();
        }
        if(res == 1cout << res << endl;
        else{
            res = ((res == 2)? 2: res*(res-1)/2);
            ooop(i, 26){
                ooop(j, 26){
                    if(i == j) continue;
                    res = max(res, i_j(i, j, d));
                }
            }
            cout << res << endl;
        }
     
        return 0;

     

    '코드포스' 카테고리의 다른 글

    1651-C  (0) 2022.03.15
    1307-D, *1900  (0) 2022.01.07
    1622-C  (0) 2021.12.29
    1623-C  (0) 2021.12.29
    1623-B  (0) 2021.12.29

    댓글

Designed by Tistory.