试题编号: |
201412-1 |
试题名称: |
门禁系统 |
时间限制: |
1.0s |
内存限制: |
256.0MB |
问题描述
涛涛最近要负责图书馆的管理工作,需要记录下每天读者的到访情况。每位读者有一个编号,每条记录用读者的编号来表示。给出读者的来访记录,请问每一条记录中的读者是第几次出现。
输入格式
输入的第一行包含一个整数n,表示涛涛的记录条数。
第二行包含n个整数,依次表示涛涛的记录中每位读者的编号。
输出格式
输出一行,包含n个整数,由空格分隔,依次表示每条记录中的读者编号是第几次出现。
样例输入
5
1 2 1 1 3
样例输出
1 1 2 3 1
评测用例规模与约定
1≤n≤1,000,读者的编号为不超过n的正整数。
解题报告
题意
读入一个数组,对于数组中每个元素一次输出是第几次出现。
思路
读者的编号不超过1000,于是我们可以开一个以编号为下标的数组cnt,记录目前每个编号出现的次数。
一边读入一边更新cnt数组,每读入一个数(设为x),就令数组中相应下标的元素值加一(cnt[x]++),此时cnt[x]就是编号为x的读者的出现次数。
源代码
1 #include <cstdio> 2 int n,x,cnt[1005]; 3 int main() 4 { 5 int i; 6 scanf("%d",&n); 7 for (i=1;i<=n;i++) 8 { 9 scanf("%d",&x); 10 cnt[x]++; 11 printf("%d ",cnt[x]); 12 } 13 return 0; 14 }