Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <math.h>
- using namespace std;
- bool sprawdz(string n,string w, int p[])
- {
- if(n.size()<w.size())return false;
- int suma_w = 0;
- int y = w.size()-1;
- for(int i=0;i<w.size();i++)
- {
- switch(w[i])
- {
- case 'A':
- suma_w-=1*pow(2,y);
- break;
- case 'B':
- suma_w-=2*pow(2,y);
- break;
- default:
- suma_w-=4*pow(2,y);
- break;
- }
- y--;
- }
- int x = 0;
- int suma_n;
- for(int i=0;i<n.size()-w.size()+1;i++)
- {
- suma_n = 0;
- int pot = w.size()-1;
- for(int j=i;j<i+w.size();j++)
- {
- switch(n[j])
- {
- case 'A':
- suma_n-=1*pow(2,pot);
- break;
- case 'B':
- suma_n-=2*pow(2,pot);
- break;
- default:
- suma_n-=4*pow(2,pot);
- break;
- }
- cout<<suma_n<<" ";
- pot--;
- }
- cout<<suma_w<<endl;
- if(suma_n==suma_w)
- {
- p[x]=i+1;
- x++;
- }
- }
- for(int i=0;i<n.size();i++)
- {
- if(p[i]!=0)cout<<p[i]-1<<",";
- }
- if(x==0)return false;
- return true;
- }
- int main()
- {
- string n = "AABCBBAACCBACCB";
- string w = "BA";
- int p[n.size()] = {0};
- if(sprawdz(n,w,p))cout<<"Tak";
- else cout<<"Nie";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement