vijos 1816
map。
map<int,int>::iterator表示一个从int映射到int的map的迭代器(可以当成是一个指针)。
由于map中是有序的,所以直接按顺序输出即可。
#include<cstdio> #include<cctype> #include<map> #include<algorithm> using namespace std; int read(){ char c; while(!isdigit(c=getchar())); int x=c-'0'; while(isdigit(c=getchar())) x=x*10+c-'0'; return x; } map<int,int> m; int main(){ int n=read(); for(int i=1;i<=n;i+=1) m[read()]++; for(map<int,int>::iterator i=m.begin();i!=m.end();++i) printf("%d %d\n",i->first,i->second); return 0; }