CCF 門禁系統
阿新 • • 發佈:2019-01-02
一、試題
問題描述
濤濤最近要負責圖書館的管理工作,需要記錄下每天讀者的到訪情況。每位讀者有一個編號,每條記錄用讀者的編號來表示。給出讀者的來訪記錄,請問每一條記錄中的讀者是第幾次出現。
輸入格式
輸入的第一行包含一個整數n,表示濤濤的記錄條數。
第二行包含n個整數,依次表示濤濤的記錄中每位讀者的編號。
輸出格式
輸出一行,包含n個整數,由空格分隔,依次表示每條記錄中的讀者編號是第幾次出現。
樣例輸入
5
1 2 1 1 3
樣例輸出
1 1 2 3 1
評測用例規模與約定
1≤n≤1,000,讀者的編號為不超過n的正整數。
二、程式碼
利用map庫的一個小技巧,++mapNum[num];如果沒有num這個key,增加一個並賦值1,否則自增。
#include<cstdio>
#include<map>
using namespace std;
int main(){
int n,num;
int to[1000];
map<int, int> mapNum;
scanf("%d", &n);
for(int i=0; i<n; i++){
scanf("%d", &num);
++mapNum[num];
to[i] = mapNum[num];
}
for(int j=0 ; j<n; j++){
printf("%d%s", to[j], " ");
}
return 0;
}