Advertisement
Eduward

29/10/2014

Oct 29th, 2014
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.85 KB | None | 0 0
  1. /*se dau doi vectori ordonati crescatori unul cu nr pare unul cu numere impare
  2. interclasati cei doi vectori astfel incat noul vector obtinut sa nu aiba doua elemente consecutive de aceeasi
  3. paritate*/
  4. #include <iostream>
  5. #include <fstream>
  6. using namespace std;
  7. ifstream f("date.in");
  8. int v1[100],v2[100],w[200],n,m,k;
  9.  
  10. void citire(int v[100], int &nr)
  11. {
  12.     int i;
  13.     f>>nr;
  14.     for(i=1;i<=nr;i++)
  15.         f>>v[i];
  16. }
  17.  
  18. void interclasare()
  19. {
  20.     int i,j;
  21.     i=1;j=1;
  22.     if(v1[i]<v2[j])
  23.     {
  24.         k++;
  25.         w[k]=v1[i];
  26.         i++;
  27.     }
  28.     else
  29.     {
  30.         k++;
  31.         w[k]=v2[j];
  32.         j++;
  33.     }
  34.     while(i<=n&&j<=m)
  35.         if(v1[i]<v2[j])
  36.             {if(v1[i]%2!=w[k]%2)
  37.                 if(v1[i]>w[k])
  38.                     {
  39.                     k++;
  40.                     w[k]=v1[i];
  41.                     i++;
  42.                     }
  43.                 else
  44.                 i++;
  45.                 else
  46.                 i++;
  47.             }
  48.             else
  49.             {
  50.                 if(v2[j]%2!=w[k]%2)
  51.                 if(v2[j]>w[k])
  52.                 {
  53.                     k++;
  54.                     w[k]=v2[j];
  55.                     j++;
  56.                 }
  57.                 else
  58.                 j++;
  59.                 else
  60.                 j++;
  61.             }
  62.  
  63.  if(i<=n&&w[k]%2!=v1[i]%2)
  64.     {while(v1[i]<w[k]&&i<=n)
  65.         i++;
  66.     if(i<=n)
  67.         {
  68.             k++;
  69.             w[k]=v1[i];
  70.         }
  71.     }
  72.     else
  73.     if(j<=m&&w[k]%2!=v2[j]%2)
  74.         {
  75.             while(v2[j]<w[k]&&j<=m)
  76.                 j++;
  77.  
  78.             if(j<=m)
  79.             {
  80.                 k++;
  81.                 w[k]=v2[j];
  82.             }
  83.         }
  84. }
  85. void afis()
  86. {
  87.     int i;
  88.     for(i=1;i<=k;i++)
  89.         cout<<w[i]<<" ";
  90. }
  91. int main()
  92. {
  93.     citire(v1,n);
  94.     citire(v2,m);
  95.     interclasare();
  96.     afis();
  97.     return 0;
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement