#include<set>
#include<map>
#include<string>
#include<vector>
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
vector<int> V;
/*for(int i=10;i>=0;i--)
{
V.push_back(i);
V.push_back(i);
}
int size=V.size();
for(int i=0;i<size;i++)
{
printf("%d ",V[i]);
}
puts("");
sort(V.begin(),V.end());
int tot=unique(V.begin(),V.end())-V.begin();
for(int i=0;i<tot;i++)
{
printf("%d ",V[i]);
}*/
V.clear();
/*int num[110];
for(int i=0;i<5;i++)
{
scanf("%d",&num[i]);
V.push_back(num[i]);
}
sort(V.begin(),V.end());
int tot=unique(V.begin(),V.end())-V.begin();
for(int i=0;i<5;i++)
{
num[i]=lower_bound(V.begin(),V.end(),num[i])-V.begin();//返回大于等于关键字的第一个位置,注意V是有序的
printf("%d ",num[i]);
}
int pos=upper_bound(V.begin(),V.end(),4)-V.begin();//返回大于关键字的第一个位置
printf("pos=%d\n",pos);
*/
/*set<int> s1;
multiset<int> s2;
s1.insert(1);s1.insert(1);s1.insert(2);//插入的数按默认是从小到大排序
for(set<int>::iterator it=s1.begin();it!=s1.end();it++)
{
printf("%d ",*it);
}
for(set<int>::reverse_iterator it=s1.rbegin();it!=s1.rend();it++)//反向遍历
printf("%d ",*it);
puts("");
s2.insert(1);s2.insert(1);s2.insert(2);
puts("**************************");
for(multiset<int>::iterator it=s2.begin();it!=s2.end();it++)
{
printf("%d ",*it);
}
printf("hehehe\n");
s2.erase(*s2.begin());
for(multiset<int>::iterator it=s2.begin();it!=s2.end();it++)
{
printf("%d ",*it);
}
if(s2.find(2)!=s2.end())
{
printf("YES\n");
}
else printf("No\n");*/
/*map<string,int> mp;
string s;
for(int i=1;i<=5;i++)
{
cin>>s;
mp[s]=i;
}
for(map<string,int>::iterator it=mp.begin();it!=mp.end();it++)
{
printf("%s %d\n",it->first.c_str(),it->second);
}
puts("");*/
pair<int,int> pt1,pt2;
pt1=make_pair(10,1010);
pt2=make_pair(4565,123);
map<pair<int,int>,int> mm;
mm[pt1]=1;mm[pt2]=2;
for(map<pair<int,int>,int>::iterator it=mm.begin();it!=mm.end();it++)
{
printf("%d %d ---->%d\n",it->first.first,it->first.second,it->second);
}
puts("");
}