CCF CSP 201412-1.门禁系统

问题描述

  涛涛最近要负责图书馆的管理工作,需要记录下每天读者的到访情况。每位读者有一个编号,每条记录用读者的编号来表示。给出读者的来访记录,请问每一条记录中的读者是第几次出现。

输入格式

  输入的第一行包含一个整数n,表示涛涛的记录条数。
  第二行包含n个整数,依次表示涛涛的记录中每位读者的编号。

输出格式

  输出一行,包含n个整数,由空格分隔,依次表示每条记录中的读者编号是第几次出现。

样例输入

5
1 2 1 1 3

样例输出

1 1 2 3 1

评测用例规模与约定

  1≤n≤1,000,读者的编号为不超过n的正整数。


分析

本题可以采用哈希表求解。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <cstdio>

int main() {
int n;
scanf("%d", &n);
int arr[n];

// n≤1,000
int hash[1001] = { 0 };
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
printf("%d", ++hash[arr[i]]);
if (i < n - 1) {
printf(" ");
}
}
printf("\n");
return 0;
}

----------本文结束感谢您的阅读----------
坚持原创技术分享,您的支持将鼓励我继续创作!