Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- int n,m,a[40],b[40],x[40][40];
- void beolvas(int a[],int &n)
- {
- cout<<"n="; cin>>n;
- for(int i=1;i<=n;i++) cin>>a[i];
- }
- int max(int a,int b)
- {
- if (a>b) return a;
- else return b;
- }
- void visszakeres(int i,int j)
- {
- while(a[i]!=b[j])
- if (x[i-1][j]>x[i][j-1]) i--; else j--;
- if (x[i-1][j-1]>0) visszakeres(i-1,j-1);
- cout<<a[i]<<" ";
- }
- int main()
- {
- beolvas(a,n);
- beolvas(b,m);
- for(int i=1;i<=n;i++)
- for(int j=1;j<=m;j++)
- if(a[i]==b[j]) x[i][j]=1+x[i-1][j-1];
- else x[i][j]=max(x[i-1][j],x[i][j-1]);
- cout<<"A leghosszabb kozos reszsorozat hossza:"<<x[n][m];
- cout<<endl<<"A sorozat elemei:";
- visszakeres(n,m);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement