Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- bool match(int * x,int n,int *p,int nP){
- int k=0;
- bool match=false;
- for(int i=0;i<n && !match;i++){
- if(x[i]==p[k]){
- k++;
- if(k==nP){
- match=true;
- }
- }else k=0;
- }
- return match;
- }
- int main(){
- int X[400], n_ele, nP, P[20];
- cout<<"start"<<endl;
- cin>> n_ele;
- for(int i=0; i<n_ele; i++)
- cin >> X[i];
- int lim1,lim2,lim3;
- cin>> lim1>>lim2>>lim3;
- cin >> nP;
- for(int i=0; i<nP; i++)
- cin>>P[i];
- int nStratiPieni = n_ele/(lim2*lim3);
- int nElultimoStrato = n_ele%(lim2*lim3);
- bool existMatch=false;
- int i;
- if(nStratiPieni<=lim1){
- for(i=0;i<nStratiPieni && !existMatch;i++){
- existMatch=match(X+i*(lim2*lim3),lim2*lim3,P,nP);
- }
- if(existMatch){
- cout << "Lo strato "<<i-1<<" di T contiene un match"<<endl;
- }else if(lim1*lim2*lim3>=n_ele && match(X+i*(lim2*lim3),nElultimoStrato,P,nP)){
- cout <<"Lo strato "<<i<<" di T contiene un match"<<endl;
- }else{
- cout <<"Nessun match trovato"<<endl;
- }
- }else{
- cout <<"Nessun match trovato"<<endl;
- }
- cout <<"end"<<endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement