fork(6) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. int tr=0;
  4. vector<int> v;
  5.  
  6. int main() {
  7. // your code goes here
  8. int t;
  9. cin >> t;
  10. while(t--){
  11. v.clear();
  12. int n;
  13. cin >> n;
  14. char a[2][n];
  15.  
  16. for(int i=0; i<2; i++){
  17. for(int j=0; j<n; j++){
  18. cin >> a[i][j];
  19. }
  20. }
  21. int c1=0, c2=0, n1=0, n2=0;
  22.  
  23. for(int i=0; i<n; i++){
  24. if(a[0][i]=='*')n1++;
  25. if(a[1][i]=='*')n2++;
  26. }
  27.  
  28.  
  29.  
  30. if(n1!=0 or n2!=0){
  31. for(int i=0; i<n; i++){
  32. if(a[0][i]=='*' or a[1][i]=='*'){
  33. if(a[0][i]=='*' and a[1][i]=='.')v.push_back(0);
  34. else if(a[0][i]=='.' and a[1][i]=='*')v.push_back(1);
  35. else v.push_back(2);
  36. }
  37. }
  38.  
  39.  
  40. for(int i=1; i<(v.size()-1); ){
  41. if(v[i-1]==0 and v[i]==1 and v[i+1]==0){
  42. tr++; i+=2;
  43. }
  44. else if(v[i-1]==1 and v[i]==0 and v[i+1]==1){
  45. tr++; i+=2;
  46. }
  47. else i++;
  48. }
  49.  
  50. for(int i=0; i<(v.size()-1); i++){
  51. if((v[i]==0 and v[i+1]==0) || (v[i]==0 and v[i+1]==2) || (v[i]==2 and v[i+1]==0) || (v[i]==2 and v[i+1]==2)) c1++;
  52. if((v[i]==1 and v[i+1]==2) || (v[i]==1 and v[i+1]==1) || (v[i]==2 and v[i+1]==1)) c2++;
  53. }
  54.  
  55. }
  56. // cout << n1<<" "<<n2<<" "<<c1<<" "<<c2 <<" "<<tr <<endl;
  57. if(n1!=0 and n2!=0){
  58. int res = c1+c2+tr+1;
  59. cout<<res<<endl;
  60. }
  61.  
  62. else {
  63. if(n1==0 and n2!=0){
  64. cout<<n2-1<<endl;
  65. }
  66. else if(n2==0 and n1!=0){
  67. cout<<n1-1<<endl;
  68. }
  69. else cout << 0 <<endl;
  70. }
  71.  
  72. }
  73. return 0;
  74. }
Runtime error #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
Standard output is empty