Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdio>
- #include <vector>
- #include <queue>
- #include <algorithm>
- #include <limits>
- #include <map>
- #include <cstdlib>
- #include <cmath>
- #include <set>
- #include <bitset>
- #include <string>
- #include <iomanip>
- #include <deque>
- using namespace std;
- template<class T>
- ostream& operator<<(ostream& is, vector<T> v){
- for(int i = 0; i < v.size(); i++){
- is << v[i];
- }
- return is;
- }
- int main(){
- //freopen("", "r", stdin); freopen("", "w", stdout);
- //freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout);
- ios::sync_with_stdio(false);
- int n, m;
- cin >> n;
- vector<int> a(n);
- for(int i = 0; i < n; i++)
- cin >> a[i];
- cin >> m;
- vector<int> b(m);
- for(int i = 0; i < m; i++)
- cin >> b[i];
- vector<vector<int> > mat(n, vector<int>(m, 0));
- for(int i = 0; i < n; i++){
- for(int j = 0; j < m; j++){
- if(a[i] == b[j]){
- mat[i][j] = 1 + (j > 0 && i > 0 ? mat[i-1][j-1] : 0);
- // cout << i << " " << j;
- }
- }
- }
- // for(int i = 0; i < n; i++){
- // for(int j = 0; j < m; j++){
- // cout << mat[i][j] << " ";
- // }
- // cout << endl;
- // }
- //
- int mx = 0;
- int mi = 0;
- for(int i = 0; i < n; i++){
- for(int j = 0; j < m; j++){
- if(mat[i][j] > mx){
- mx = mat[i][j];
- mi = i;
- }
- }
- }
- for(int i = mi - mx + 1; i <= mi; i++)
- cout << a[i] << " ";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement