Submission #1012447

#TimeUsernameProblemLanguageResultExecution timeMemory
1012447basaDifference (POI11_roz)C++14
0 / 100
1077 ms44280 KiB
#include <bits/stdc++.h>

using namespace std;

#define int long long

const int maxa = 1000005;
vector<int>p[maxa];

signed main()
{
  cin.tie(0) -> sync_with_stdio(0);
  int n;
  cin >> n;

  string s;
  cin >> s;

  vector<int>ind[30];
  for(int i = 0; i < n; i++) ind[s[i] - 'a'].push_back(i);

  int ans = 0;
  for(int i = 0; i < 26; i++){
    for(int j = 0; j < 26; j++){
      if(ind[i].size() == 0) break;
      if(ind[j].size() == 0) continue;

      int a[n] = {};
      for(int k = 0; k < n; k++){
        a[k] += (s[k] - 'a' == i ? 1 : 0);
        a[k] += (s[k] - 'a' == j ? -1 : 0);
      }

      int curr = a[0];
      int mx = curr;
      for(int i = 1; i < n; i++){
         curr = max(a[i], curr + a[i]);
         mx = max(mx, curr);
       }


      ans = max(mx, ans);
    }
  }

  cout << ans;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...