Guest User

Untitled

a guest
Dec 26th, 2016
279
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.72 KB | None | 0 0
  1. #include <iostream>
  2. #include <set>
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.     int n,m;
  8.     cin >>n>>m;
  9.     set <int>good;
  10.     multiset<int>real1;
  11.     set <int>real;
  12.  
  13.     int x;
  14.     for (int i=0 ;i<n ;i++)
  15.     {
  16.         cin >>x;
  17.         good.insert(x);
  18.     }
  19.  
  20.     for (int i=0 ;i<m;i++)
  21.     {
  22.         cin >>x;
  23.         real.insert(x);
  24.         real1.insert(x);
  25.     }
  26.  
  27.     if (m<n)
  28.     {
  29.         set <int>::iterator k,c;
  30.         int res=0;
  31.         for (k=good.begin() ;k!=good.end() ;k++)
  32.         {
  33.             c=real.find(*k);
  34.             if (c!=real.end())
  35.             {
  36.                 if (*c==*k)
  37.                 {
  38.                    res--;
  39.                 }
  40.             }
  41.  
  42.             else
  43.             {
  44.                 c=real1.upper_bound(*k);
  45.                 if (c!=real1.end())
  46.                 {
  47.                     res--;
  48.                     good.erase(*k);
  49.                     real1.erase(c);
  50.                 }
  51.             }
  52.         }
  53.  
  54.         res+=good.size();
  55.  
  56.         cout <<res<<endl;
  57.     }
  58.  
  59.     else
  60.     {
  61.         int res=0;
  62.         int g=good.size();
  63.         set <int>::iterator k,c;
  64.         for (k=good.begin() ;k!=good.end() ;k++)
  65.         {
  66.             c=real.find(*k);
  67.             if (c!=real.end())
  68.             {
  69.                 res--;
  70.                 good.erase(*k);
  71.                 real1.erase(real1.find(*k));
  72.             }
  73.  
  74.             else
  75.             {
  76.                 c=real1.upper_bound(*k);
  77.                 if (c!=real1.end())
  78.                 {
  79.                     res--;
  80.                     good.erase(*k);
  81.                     real1.erase(c);
  82.                 }
  83.             }
  84.         }
  85.  
  86.         res+=g;
  87.         cout <<res<<endl;
  88.     }
  89.     return 0;
  90. }
Add Comment
Please, Sign In to add comment