Advertisement
albnayem

Friend or Girlfriend

Apr 6th, 2019
393
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.15 KB | None | 0 0
  1.  
  2. vector <ll> dis[27];
  3.  
  4. int main()
  5. {
  6.     //seive();
  7.     //freopen("Nayem.txt", "r", stdin);
  8.     Fast_read
  9.  
  10.     int t;
  11.     cin>>t;
  12.     while (t--){
  13.         ll n,sum=0;
  14.         cin>>n;
  15.         ll res=(n*(n+1))/2;
  16.         char str[n+100];
  17.         for (int i=0;i<n;i++){
  18.             cin>>str[i];
  19.             dis[str[i]-'a'].pb(i+1);
  20.         }
  21.         char ch;
  22.         cin>>ch;
  23.         if (dis[ch-'a'].empty()){
  24.             cout<<0<<endl;
  25.             for (int i=0;i<27;i++)
  26.                 dis[i].clear();
  27.             continue;
  28.         }
  29.         ll dif=dis[ch-'a'][0]-1;
  30.         sum=(dif*(dif+1))/2;
  31.         if (dis[ch-'a'].size()==1){
  32.             int dif=n-dis[ch-'a'][0];
  33.             sum+=(dif*(dif+1))/2;
  34.         }
  35.         else if (dis[ch-'a'].size()>1){
  36.             int i=1;
  37.             for (i=1;i<dis[ch-'a'].size();i++){
  38.                 ll dif=(dis[ch-'a'][i]-dis[ch-'a'][i-1])-1;
  39.                 sum+=(dif*(dif+1))/2;
  40.             }
  41.             int dif=n-dis[ch-'a'][i-1];
  42.             sum+=(dif*(dif+1))/2;
  43.         }
  44.         cout<<res-sum<<endl;
  45.         for (int i=0;i<27;i++)
  46.             dis[i].clear();
  47.     }
  48.     return 0;
  49. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement