UVA484 The Department of Redundancy Department
题目大意
这道题其实就是给出一个数字序列,按数字出现的顺序输出这个数字以及它的计数。
思路
创建两个容器,一个是std::map
,用来记录出现的数字对应的次数,一个是std::vector
,用来记录出现的数字的顺序。每读入一个数字,如果没有出现过(可以通过std::map.count()==0
来判断),那么将这个数加入std::vector
。当然,无论读到什么数,都需要把std::map
中的这个数字对应的值加一。
代码如下:
#include<bits/stdc++.h>
using namespace std;
map<int,int> m;
vector<int> v;
int main(){
int a;
while(cin>>a){
if(m.count(a)==0){
v.push_back(a);
}
m[a]++;
}
for(int i:v){
cout<<i<<" "<<m[i]<<endl;
}
return 0;
}