比赛 |
20151019 |
评测结果 |
EEEETTTTTT |
题目名称 |
学数数 |
最终得分 |
0 |
用户昵称 |
/k |
运行时间 |
6.330 s |
代码语言 |
C++ |
内存使用 |
1.31 MiB |
提交时间 |
2015-10-19 20:30:51 |
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
int a[100010];
int s[100010];
int c[100010];
int n,q;
inline int gl(int a)
{
return a&(-a);
}
inline int gj(int a,int k)
{
while(a<=100010)
{
c[a]+=k;
a+=gl(a);
}
}
inline int gs(int a)
{
int u=0;
while(a>0)
{
u+=c[a];
a-=gl(a);
}
return u;
}
int main()
{
freopen("jxthree.in","r",stdin);
freopen("jxthree.out","w",stdout);
scanf("%d%d",&n,&q);
for(int i=1;i<=n;i++)
scanf("%d",&a[i]);
for(int i=1;i<=n;i++)
for(int y=i;y<=n;y++)
s[max(i,y)]++;
for(int i=1;i<=100000;i++)
gj(i,s[i]);
n=gs(100000);
while(q--)
{
char f[10];
int k;
scanf("%s%d",f,&k);
if(f[0]=='=')
printf("%d\n",s[k]);
else if(f[0]=='<')
printf("%d\n",gs(k-1));
else
printf("%d\n",n-gs(k));
}
/*getchar();
getchar();*/
}