Description
Kimi最近在负责一栋秘密大厦的安保工作,他的工作是记录大厦的来访者情况。
每个来访者都有一个与之对应的唯一编号,在每一条到访记录中记录了该来访者的编号。
现在Kimi需要统计每一条记录中的来访者是第几次光临秘密大厦。
Input
单组输入,包含两行。
第1行包含一个正整数 n,表示记录的条数;
第2行包含 n 个正整数,依次表示Kimi的记录中每位来访者的编号,两两之间用空格隔开。
保证 n 与来访者的编号都不超过 200000。
Output
输出 1 行,包含 n 个正整数,两两之间用空格隔开,依次表示每条记录中的来访者编号是第几次出现。
Sample Input
6
1 1 2 2 3 1
Sample Output
1 2 1 2 1 3
我想评个最短代码可以嘛🐷
解析:开个a[]数组,a[ i ]表示i出现过多少次,然后每次输入L,a[L]++,然后再输出a[L]就是L出现的次数。
#include <stdio.h>
int a[200005];
int main()
{
int n,i,l;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&l);
a[l]++;
if(i!=0) printf(" ");
printf("%d",a[l]);
}
return 0;
}