记录编号 |
195946 |
评测结果 |
EEEEEEEEEE |
题目名称 |
学数数 |
最终得分 |
0 |
用户昵称 |
fyb |
是否通过 |
未通过 |
代码语言 |
C++ |
运行时间 |
0.806 s |
提交时间 |
2015-10-20 13:25:54 |
内存使用 |
0.67 MiB |
显示代码纯文本
#include <cstdio>
#include <ctype.h>
using namespace std;
#define NMAX 100000
int a[NMAX+1];
bool man_zu(int a,int t,int k){
switch(t){
case 0:
if(a<k)return true;
else return false;
break;
case 1:
if(a==k)return true;
else return false;
break;
case 2:
if(a>k)return true;
else return false;
break;
}
}
int main(){
int n,q;
int to,tk,mxj;
long long ans;
int i,j;
freopen("jxthree.in","r",stdin);
freopen("jxthree.out","w",stdout);
scanf("%d%d",&n,&q);
// getchar();
for(i=1;i<=n;i++)
scanf("%d",a+i);
// getchar();
for(i=0;i<q;i++){
scanf("%c",&to);
if(!isprint(to)){
i--;
continue;
}
switch(to){
case '<':
to=0;
break;
case '=':
to=1;
break;
case '>':
to=2;
break;
}
scanf("%d",&tk);
// printf("%d %d\n",to,tk);
ans=0;
mxj=0;
for(j=1;j<=n;j++){
if(man_zu(a[j],to,tk)){
if(tk==2)
ans+=j;
else ans+=j-mxj;
}
if(tk==0)if(a[j]>=tk)mxj=j;
else if(a[j]>tk)mxj=j;
}
printf("%lld\n",ans);
}
return 0;
}