fork download
  1. //nono
  2. #include <iostream>
  3. using namespace std;
  4.  
  5. int main() {
  6. // your code goes hereno
  7. int t;cin>>t;while(t--){
  8. int n;cin>>n;
  9. string s;cin>>s;
  10. int a[n];
  11. for(int i=0;i<n;i++)
  12. if(s[i]=='*')
  13. a[i]=1;
  14. else a[i]=0;
  15. if(n==1){
  16. cout<<0<<endl;continue;
  17. }
  18. long long int ctr=0,sum=0,dis=0;
  19. long long int pre[n],post[n];int flag=0;
  20. for(int i=0;i<n;i++){
  21. post[i]=0;
  22. pre[i]=0;
  23. }
  24. for(int i=0;i<n;i++){
  25. if(a[i]==1){
  26. if(flag==0)
  27. flag=1;
  28. sum=sum+(dis*ctr);
  29. pre[i]=sum;
  30. ++ctr;
  31. dis=0;
  32. }else {
  33. if(flag==1)
  34. dis++;
  35. }
  36. }sum=0,ctr=0,dis=0,flag=0;
  37. for(int i=n-1;i>=0;i--){
  38. if(a[i]==1){
  39. if(flag==0)
  40. flag=1;
  41. sum=sum+(dis*ctr);
  42. post[i]=sum;
  43. ++ctr;
  44. dis=0;
  45. }else {
  46. if(flag==1)
  47. dis++;
  48. }
  49. }long long int mint;flag=0;
  50. for(int i=0;i<n;i++){
  51. //no
  52. if(a[i]==1){
  53. if(flag==0){
  54. mint=post[i]+pre[i];
  55. flag=1;
  56. continue;
  57. }
  58. mint=min(mint,(pre[i]+post[i]));
  59. }
  60. }cout<<mint<<endl;
  61. }
  62. return 0;
  63. }
  64.  
Success #stdin #stdout 0.01s 5360KB
stdin
5
6
**.*..
5
*****
3
.*.
3
...
10
*.*...*.**
stdout
1
0
0
0
9