#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;;
const int N=1e5+;
struct T {
int key;
int id;
};
struct ask {
int lr;
int hr;
int val;
int id;
};
T arr[N];
ask q[N];
int tree[N];
int ans [N];
int n,m;
bool cmp1 (T a,T b) {
return a.key<b.key;
}
bool cmp2 (ask a,ask b) {
return a.val<b.val;
}
void add (int x,int k) {
while (k<=n) {
tree[k]+=x;
k+=k&(-k);
}
}
int sum (int k) {
int _ans=;
while (k) {
_ans+=tree[k];
k-=k&(-k);
}
return _ans;
}
int main ()
{
int T;
scanf ("%d",&T);
int num=;
while (T--) {
printf("Case %d:\n",num++);
scanf ("%d %d",&n,&m);
for (int i=;i<=n;i++) {
scanf ("%d",&arr[i].key);
arr[i].id=i;
}
sort (arr+,arr++n,cmp1);
for (int i=;i<=m;i++) {
scanf ("%d %d %d",&q[i].lr,&q[i].hr,&q[i].val);
q[i].id=i;
}
sort (q+,q++m,cmp2);
memset (tree,,sizeof(tree));
int top=;
for (int i=;i<=m;i++) {
while (top<=n&&arr[top].key<=q[i].val) {
add(,arr[top].id);
top++;
}
ans[q[i].id]=sum(q[i].hr+)-sum(q[i].lr);
}
for (int i=;i<=m;i++)
printf("%d\n",ans[i]);
}
return ;
}

最新文章

  1. JDK1.5/1.6/1.7之新特性总结(转载)
  2. JS 模块化和打包方案收集
  3. 【bzoj1010】 HNOI2008—玩具装箱toy
  4. Spring AOP(注解方式)
  5. Jaxb解析xml准换为javabean
  6. TextEdit验证
  7. C栈stack
  8. VC++ CTime Format 详解
  9. 【JS】Intermediate4:JSON
  10. Yii2的相关学习记录,alert等美化、confirm异步、session中的flash及小部件的使用(六)
  11. cocos2d-x CCAction:动作(转)
  12. Week04-面向对象设计与继承
  13. django rest framework权限和认证
  14. Linux命令(十二)制作静态库和共享库
  15. MySQL终章
  16. 在Hadoop集群上的HBase配置
  17. 全国绿色计算大赛 模拟赛第一阶段(C++)第1关:求和
  18. MySQL 检索数据及提高检索速度的方法
  19. 在xampp与phpstorm环境下安装xdebug[转]
  20. 用python实现一个简单的聊天功能,tcp,udp,socketserver版本

热门文章

  1. VSS迁移详细教程
  2. Oracle 当前日期如何添加指定年数、月数、天数、时数、分钟数、秒数
  3. ASCII编码、Unicode编码、UTF-8
  4. console.log()显示图片以及为文字加样式
  5. IDEA教程之导入maven项目
  6. prppppne2
  7. HotSpot虚拟机对象探秘
  8. log4j的log4j.properties文件配置的详细介绍
  9. Fedora防火墙配置
  10. selenium(七)expected_conditions EC