【CCF201412-1】门禁系统

试题编号:

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 } 
原文地址:https://www.cnblogs.com/rabbit1103/p/14303544.html