//
问题 AY: 近似排序
时间限制: 1.000 Sec 内存限制: 128 MB
题目描述
读入正整数x和y,将这两个数之间(包括这两个数本身)的所有数按下述特别规则排序后输出。
该特别规则是:按两数倒过来的值进行比较决定其大小,如30倒过来为3,29倒过来为92,则29大于30
输入
一行两个整数x和y,用一个空格隔开,1<=x<=y<=1000000000,y-x<=100
输出
包括y-x+1行,每行一个正整数,按两数倒过来的值进行比较决定其大小,然后由小到大输出
样例输入 Copy
22 39
样例输出 Copy
30
31
22
32
23
33
24
34
25
35
26
36
27
37
28
38
29
39
//
#include<bits/stdc++.h>
using namespace std;
set< pair<int,int> > sxy;
set< pair<int,int> >::iterator it;
template< class T1,class T2 >
T1 my_convert( T2 in )
{
stringstream ss; T1 out;
ss<<in; ss>>out;
return out;
}
int main()
{
string s;
int a,b,i,ans;
while( cin>>a>>b )
{
for( i=a;i<=b;i++ )
{
s=my_convert<string>(i);
reverse( s.begin(),s.end() );
ans=my_convert<int>(s);
sxy.insert( { ans,i } );
}
for( it=sxy.begin();it!=sxy.end();it++ )
cout<<it->second<<endl;
}
return 0;
}