比赛 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();*/
}