#YC208. 例题:数组统计负整数

例题:数组统计负整数

例题:数组统计负整数

题目描述

程序设计当中,往往很多时候涉及到我们需要统计某些数据(数值或者字母)出现的个数,一个一个去判断然后用指定的变量来计数这种做法已经过时了,不适用于大规模大批量的数据统计。

这是一道用数组统计数据负数的个数的例题


因为数组只能从0表示下标,如果要统计负整数,只能把负整数等价变化一下

比如原本A[i]都是负整数,且最多为-100  ,那么想统计负数的个数,可以这样统计B[A[i]+100]++

输出-1到-100的个数就要写成
for(int i=-100;i<=-1;i++){

  cout<<B[i+100]<<" ";//要等价的都+100来重新表示对应的负整数
  //才能使用数组下标 
}

输入格式

第一行 NN 是数组AA的大小。1N1000001 \le N \le 100000

紧接着一行是数组的 NN 个元素。A1,A2,A3...ANA_1,A_2,A_3...A_N

数据保证100000Ai100000-100000 \leq A_i \leq100000

再在独立的一行输入两个整数LRL,R (100000LR100000)(-100000 \leq L \leq R \leq 100000)

输出格式

请你输出整个数组当中数字L,L+1,L+2...RL,L+1,L+2...R分别出现了多少次,换行打印

样例 #1

样例输入 #1

5
-1 -1 -2 3 1
-2 3

样例输出 #1

1
2
0
1
0
1

解释

因为输入的L=-2,R=3

所以要打印数字-2,-1,0,1,2,3出现的次数