Advertisement
patryk178

Untitled

Sep 30th, 2019
135
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.57 KB | None | 0 0
  1. #include <iostream>
  2. #include <math.h>
  3.  
  4. using namespace std;
  5.  
  6. bool sprawdz(string n,string w, int p[])
  7. {
  8. if(n.size()<w.size())return false;
  9.  
  10. int suma_w = 0;
  11. int y = w.size()-1;
  12. for(int i=0;i<w.size();i++)
  13. {
  14. switch(w[i])
  15. {
  16. case 'A':
  17. suma_w-=1*pow(2,y);
  18. break;
  19. case 'B':
  20. suma_w-=2*pow(2,y);
  21. break;
  22. default:
  23. suma_w-=4*pow(2,y);
  24. break;
  25. }
  26.  
  27. y--;
  28. }
  29.  
  30. int x = 0;
  31. int suma_n;
  32. for(int i=0;i<n.size()-w.size()+1;i++)
  33. {
  34. suma_n = 0;
  35. int pot = w.size()-1;
  36. for(int j=i;j<i+w.size();j++)
  37. {
  38.  
  39. switch(n[j])
  40. {
  41. case 'A':
  42. suma_n-=1*pow(2,pot);
  43. break;
  44. case 'B':
  45. suma_n-=2*pow(2,pot);
  46. break;
  47. default:
  48. suma_n-=4*pow(2,pot);
  49. break;
  50. }
  51.  
  52. cout<<suma_n<<" ";
  53.  
  54. pot--;
  55. }
  56.  
  57. cout<<suma_w<<endl;
  58. if(suma_n==suma_w)
  59. {
  60. p[x]=i+1;
  61. x++;
  62. }
  63. }
  64.  
  65. for(int i=0;i<n.size();i++)
  66. {
  67. if(p[i]!=0)cout<<p[i]-1<<",";
  68. }
  69.  
  70. if(x==0)return false;
  71. return true;
  72. }
  73. int main()
  74. {
  75. string n = "AABCBBAACCBACCB";
  76. string w = "BA";
  77. int p[n.size()] = {0};
  78. if(sprawdz(n,w,p))cout<<"Tak";
  79. else cout<<"Nie";
  80. return 0;
  81.  
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement