Advertisement
Guest User

Untitled

a guest
Dec 11th, 2018
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.96 KB | None | 0 0
  1. #include <iostream>
  2. #include <stack>
  3. #include <string>
  4. using std::cin;
  5. using std::cout;
  6. using std::stack;
  7. using std::string;
  8.  
  9. void merge_sort(int * array,int left,int right) {
  10.     int mid;
  11.     if(left+1<=right) {
  12.         mid=(left+right)/2;
  13.         merge_sort(array,left,mid);
  14.         merge_sort(array,mid+1,right);
  15.         int size1=mid-left+1, size2 = right-mid;
  16.         int * L; int * R;
  17.         L=new int[size1+1];
  18.         R=new int[size2+1];
  19.         for(int i=1;i<=size1; i++) {
  20.             L[i-1]=array[left+i-1];
  21.         }
  22.         for(int j=1;j < size2+1; j++) {
  23.             R[j-1]=array[mid+j];
  24.         }
  25.         for(int i=0,j=0,k=left; k<=right; k++) {
  26.             if(i<size1 && j<size2) {
  27.                 if(L[i]<=R[j]) {
  28.                     array[k]=L[i];
  29.                     i++;
  30.                 } else {
  31.                     array[k]=R[j];
  32.                     j++;
  33.                 }
  34.             } else if(i<size1) {
  35.                 array[k]=L[i];
  36.                 i++;
  37.             } else {
  38.                 array[k]=R[j];
  39.                 j++;
  40.             }
  41.         }
  42.         delete [] L; delete [] R;
  43.     }
  44. }
  45.  
  46.  
  47. int main() {
  48.     int n,m;
  49.     cin >> n >> m;
  50.     int* mas1 = new int[n];
  51.     int* mas2 = new int[m];
  52.     for(int i=0; i<n;++i){
  53.         cin >> mas1[i];
  54.     }
  55.     for(int i=0; i<m;++i){
  56.         cin >> mas2[i];
  57.     }
  58.     merge_sort(mas1,0,n-1);
  59.     merge_sort(mas2,0,m-1);
  60.     int i=0; int j=0;
  61.     while(j+1<m && mas2[j]==mas2[j+1]){
  62.         ++j;
  63.     }
  64.     while(i+1<n&&mas1[i]==mas1[i+1]){
  65.         ++i;
  66.     }
  67.     for(;i<n && j<m;){
  68.         if(mas1[i]!=mas2[j]){
  69.             cout << "No";
  70.             return 0;
  71.         }
  72.         ++i;
  73.         while(i+1<n&&mas1[i]==mas1[i+1]){
  74.             ++i;
  75.         }
  76.         ++j;
  77.         while(j+1<m && mas2[j]==mas2[j+1]){
  78.             ++j;
  79.         }
  80.     }
  81.     if(i==n && j==m){
  82.         cout << "Yes";
  83.     }else{
  84.         cout << "No";
  85.     }
  86.  
  87.  
  88.     return 0;
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement