Codeforces 706B Interesting drink

Source: Internet
Author: User


Time limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard output


Vasiliy likes to rest after a hard work, so you may be often meet him in some bar nearby. As all programmers does, he loves the famous drink "Beecola", which can bought in N different shops in t He city. It's known the price of one bottle in the shop i am equal to xicoins.



Vasiliy plans to buy he favorite drink for Q consecutive days. He knows, that on the i-th Day he'll be able to spent mi coins. Now, for each of the days he want to know in how many different shops he can buy a bottle of "Beecola".


Input


The first line of the input contains a single integer n (1≤ n ≤100)-the number of S Hops in the city that sell Vasiliy ' s favourite drink.



The second line contains n integers xi (1≤ xi ≤100 000) -prices of the bottles of the drink in the I--th shop.



The third line contains a single integer q (1≤ q ≤100)-the number of days Vasiliy Plans to buy the drink.



Then follow q lines each containing one integer mi (1≤ mi≤109)-the number of coins Vasiliy can spent on the I--th day.


Output


Print q integers. The i-th of them should is equal to the number of shops where Vasiliy would be able to buy a bottle of the Drink on the i-th day.


Exampleinputcopy
5
3 10 8) 6 11
4
1
10
3
11
Outputcopy
0
4
1
5
Note


On the first day, Vasiliy won ' t is able to buy a drink in any of the shops.



On the second day, Vasiliy can buy a drink in the shops 1, 2, 3 and 4.



On the third day, Vasiliy can buy a drink only in the shop number 1.



Finally, the last day Vasiliy can buy a drink in any shop.






This topic can, the topic said Xi not more than 100000, so I opened the number of arrays with a tree-like array, submit runtime error, a look, oh, the query is the range is 1000000000, so add a step to judge, this is the answer is wrong, it seems Xi is so large range, so that, This problem is even the general solution other, is estimated to be two, but the tree-like array is not, the array can not be opened particularly large, then map a bit, and then write a two points, two minutes time-consuming, is really two points ...



Tree-like array code:


#include <iostream>
#include <map>
#include <cstdio>
#define MAX 1000000000
using namespace std;
int n,m;
map<int,int> sum;
int lowbit(int t) {
    return t&(-t);
}
void update(int x) {
    while(x <= MAX) {
        sum[x] ++;
        x += lowbit(x);
    }
}
int getans(int x) {
    int ans = 0;
    while(x > 0) {
        ans += sum[x];
        x -= lowbit(x);
    }
    return ans;
}
int main() {
    int d;
    scanf("%d",&n);
    for(int i = 0;i < n;i ++) {
        scanf("%d",&d);
        update(d);
    }
    scanf("%d",&m);
    for(int i = 0;i < m;i ++) {
        scanf("%d",&d);
        printf("%d\n",getans(d));
    }
}


Two-minute code:


#include <iostream>
#include <algorithm>
#include <cstdio>
#define MAX 100000
using namespace std;
int n,m;
int x[MAX];

int main() {
    int d;
    scanf("%d",&n);
    for(int i = 0;i < n;i ++) {
        scanf("%d",&x[i]);
    }
    sort(x,x + n);
    scanf("%d",&m);
    for(int i = 0;i < m;i ++) {
        scanf("%d",&d);
        int l = 0,r = n,mid;
        while(l < r) {
            mid = (l + r) / 2;
            if(x[mid] <= d) l = mid + 1;
            else r = mid;
        }
        printf("%d\n",l);
    }
}





Codeforces 706B Interesting drink


Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.