TawratNibir

Distinct Split

Jan 8th, 2026
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.99 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #define ll long long
  5. const int M = 1e9+7;
  6. const int N = 1e7+5;
  7.  
  8. int main() {
  9.     int t;
  10.     cin >> t;
  11.     while (t--) {
  12.         string s;
  13.         ll n;
  14.         cin >> n;
  15.         cin >> s;
  16.         vector<vector<int>> ftable(26, vector<int> (n, 0));
  17.         vector<int> dis(n, 0);
  18.         ftable[s[0]-'a'][0]++;
  19.         ll cnt = 0;
  20.         for(int i=1;i<n;++i) {
  21.             for(int j=0;j<26;++j) {
  22.                 if(j != (s[i] - 'a'))ftable[j][i] = ftable[j][i-1];
  23.                 else ftable[j][i] = ftable[j][i-1] + 1;
  24.             }
  25.         }
  26.         for(int i=0;i<n;++i) {
  27.             ll cnt2 = 0;
  28.             for(int j=0;j<26;++j) {
  29.                 // cout << ftable[j][i] << " ";
  30.                 if(ftable[j][i]) cnt2++;
  31.                 if(ftable[j][i] < ftable[j][n-1]) cnt2++;
  32.             }
  33.             // cout << endl;
  34.             cnt = max(cnt, cnt2);  
  35.         }
  36.         cout << cnt << endl;
  37.     }
  38.     return 0;
  39. }
Advertisement
Add Comment
Please, Sign In to add comment