10155問題AY近似sort_set_stringstream

//
问题 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;
}

おすすめ

転載: blog.csdn.net/qq_63173957/article/details/123894738