CodeForces 706B Interesting drink
来源:互联网 发布:交换机端口标签 编辑:程序博客网 时间:2024/05/02 00:40
题目:
Description
Vasiliy likes to rest after a hard work, so you may often meet him in some bar nearby. As all programmers do, he loves the famous drink "Beecola", which can be bought in n different shops in the city. It's known that the price of one bottle in the shop i is equal to xi coins.
Vasiliy plans to buy his favorite drink for q consecutive days. He knows, that on the i-th day he will 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 000) — the number of shops 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 000) — 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 be equal to the number of shops where Vasiliy will be able to buy a bottle of the drink on the i-th day.
Sample Input
53 10 8 6 114110311
0415
这个题目就是,给出若干查询,对于每个查询,输出数组中有多少个数比它小。
这不就是最典型的树状数组吗?
代码:
#include<iostream>using namespace std;int n = 100000;int c[100005];int sum(int i){int s = 0;while (i){s += c[i];i -= (i&(-i));}return s;}void add(int i, int x){while (i <= n){c[i] += x;i += (i&(-i));}}int main(){int nn, a, q;scanf("%d", &nn);for (int i = 0; i <= n; i++)c[i] = 0;for (int i = 0; i < nn; i++){scanf("%d", &a);add(a, 1);}scanf("%d", &q);for (int i = 0; i < q; i++){scanf("%d", &a);if (a >= n)printf("%d\n", sum(n));else printf("%d\n", sum(a));}return 0;}
- CodeForces 706B Interesting drink
- CodeForces 706B Interesting drink
- 【codeforces 706B Interesting drink】
- CodeForces-706B. Interesting drink
- codeforces 706B Interesting drink
- codeforces 706B B. Interesting drink (二分)
- 【Codeforces】-706B-Interesting drink(二分)
- 【二分】Codeforces 706B Interesting drink
- 【codeforces】706B—Interesting drink
- Codeforces 706B Interesting drink 【二分】
- CodeForces 706B Interesting drink【水题】
- codeforces-367#B. Interesting drink
- CodeForces 706B Interesting drink(树状数组)
- 文章标题 codeforces 706B :Interesting drink( 水)
- Codeforces 706B:Interesting drink(二分+排序)
- Codeforces #367 B. Interesting drink(二分)
- B. Interesting drink
- Codeforces Round #367 (Div. 2) B Interesting drink【二分】
- [AngularJS面面观] 22. 依赖注入 --- 配置队列以及运行队列
- 判断两个字符串是否互为旋转词
- JZOJ8.13数字游戏
- python_openCV学习笔记(1) 绘制openCV的logo
- Http协议
- CodeForces 706B Interesting drink
- 暑期dp46道(32)--hdoj 1171 Big Event in HDU 多重背包:
- 常见的web攻击有哪些
- 在Eclipse上安装git插件EGit
- android中数据库的拷贝
- Android自学笔记(三)实现2048小游戏
- 关于dubbo的一些性能测试参考文档
- Android 使用ViewPager真正实现左右无限滑动(附源码)
- Gallery使用 主要记录一些 注意的地方