Facebook
From Ungracious Pudu, 4 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 143
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. long long numbers[1000000];
  4. long long lb(int firstIndex, long long lastIndex, long long wanted) {
  5.     while(firstIndex!=lastIndex) {
  6.     long long midIndex = (firstIndex + lastIndex)/2;
  7.     if(numbers[midIndex]<wanted) {
  8.         firstIndex = midIndex+1;
  9.         } else {
  10.         lastIndex = midIndex;
  11.             }
  12.  
  13.         }
  14.         return lastIndex;
  15.     }
  16. long long ub(long long firstIndex, long long lastIndex, long long wanted) {
  17.     while(firstIndex!=lastIndex) {
  18.     long long midIndex = (firstIndex + lastIndex)/2;
  19.     if(numbers[midIndex]<=wanted) {
  20.         firstIndex = midIndex+1;
  21.         } else {
  22.         lastIndex = midIndex;
  23.             }
  24.  
  25.         }
  26.         return lastIndex;
  27.     }
  28. long long instanceCounter(long long firstIndex, long long lastIndex, long long wanted) {
  29.     return ub(firstIndex, lastIndex, wanted) - lb(firstIndex, lastIndex, wanted);
  30.     }
  31. int main() {
  32.     long long numberCount;
  33.     cin>>numberCount;
  34.     for(int i = 0; i<numberCount; i++) {
  35.         cin>>numbers[i];
  36.         }
  37.     long long questionCount;
  38.     long long curQuestion;
  39.     cin>>questionCount;
  40.     for(long long i = 0; i<questionCount; i++) {
  41.         cin>>curQuestion;
  42.         cout<<instanceCounter(0, numberCount, curQuestion)<<endl;
  43.         }
  44.         return 0;
  45.     }