Advertisement
welleyth

3970. Mutants

Dec 26th, 2020
1,046
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.34 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. #define int long long
  6. #define mp make_pair
  7. #define pb push_back
  8.  
  9. signed main() {
  10.     ios::sync_with_stdio(0);cin.tie(nullptr);cout.tie(nullptr);
  11.     //freopen("input.txt","r",stdin);
  12.     //freopen("output.txt","w",stdout);
  13.  
  14.     int n;
  15.     cin >> n;
  16.  
  17.     vector<int> v(n);
  18.  
  19.     for(int i=0;i<n;i++)
  20.     {
  21.         cin >> v[i];
  22.     }
  23.  
  24.     int t;
  25.     cin >> t;
  26.  
  27.     sort(v.begin(),v.end());
  28.  
  29.     int left,right;
  30.     int L,R;
  31.     int mid;
  32.  
  33.     int a;
  34.  
  35.     while(t--)
  36.     {
  37.         cin >> a;
  38.         if(n == 0)
  39.         {
  40.             cout << "0\n";
  41.             continue;
  42.         }
  43.         L = 0,R = n-1;
  44.         while(R-L>1)
  45.         {
  46.             mid = (R+L)/2;
  47.             if(v[mid] > a)
  48.                 R = mid;
  49.             else
  50.                 L = mid;
  51.         }
  52.  
  53.         if(v[L] != a && v[R] != a)
  54.         {
  55.             cout << "0\n";
  56.             continue;
  57.         }
  58.  
  59.         right = (v[R] == a ? R : L);
  60.  
  61.         L = 0,R = n-1;
  62.         while(R-L>1)
  63.         {
  64.             mid = (R+L)/2;
  65.             if(v[mid] < a)
  66.                 L = mid;
  67.             else
  68.                 R = mid;
  69.         }
  70.         left = (v[L] == a ? L : R);
  71.  
  72.         if(right < left)
  73.             swap(right,left);
  74.  
  75.         cout << right - left + 1 << "\n";
  76.     }
  77.  
  78.     return 0;
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement