Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- vector <ll> dis[27];
- int main()
- {
- //seive();
- //freopen("Nayem.txt", "r", stdin);
- Fast_read
- int t;
- cin>>t;
- while (t--){
- ll n,sum=0;
- cin>>n;
- ll res=(n*(n+1))/2;
- char str[n+100];
- for (int i=0;i<n;i++){
- cin>>str[i];
- dis[str[i]-'a'].pb(i+1);
- }
- char ch;
- cin>>ch;
- if (dis[ch-'a'].empty()){
- cout<<0<<endl;
- for (int i=0;i<27;i++)
- dis[i].clear();
- continue;
- }
- ll dif=dis[ch-'a'][0]-1;
- sum=(dif*(dif+1))/2;
- if (dis[ch-'a'].size()==1){
- int dif=n-dis[ch-'a'][0];
- sum+=(dif*(dif+1))/2;
- }
- else if (dis[ch-'a'].size()>1){
- int i=1;
- for (i=1;i<dis[ch-'a'].size();i++){
- ll dif=(dis[ch-'a'][i]-dis[ch-'a'][i-1])-1;
- sum+=(dif*(dif+1))/2;
- }
- int dif=n-dis[ch-'a'][i-1];
- sum+=(dif*(dif+1))/2;
- }
- cout<<res-sum<<endl;
- for (int i=0;i<27;i++)
- dis[i].clear();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement