门禁系统

问题描述

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

输入格式

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

输出格式

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

样例输入

5
1 2 1 1 3

样例输出

1 1 2 3 1

评测用例规模与约定

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

#include<bits/stdc++.h>
using namespace std;

map<int, int> m;

int main(){
    int n, t;
    cin >> n;
    for (int i = 0; i < n;++i){
        scanf("%d ", &t);
        if (m.find(t) == m.end())
            m[t] = 1;
        else
            ++m[t];
        printf("%d ", m[t]);
    }
    return 0;
}