您的位置:首页 > 其它

ZOJ Monthly, May 2011 - B Roman Order

2011-05-01 16:11 423 查看
简单的字符串比较

#include<iostream>
using namespace std;
#include<string>
#include<algorithm>
struct node
{
string s;
int num;
}a[10010];
string f[4][9]={{"M","MM","MMM"},{"C","CC","CCC","CD","D","DC","DCC","DCCC","CM"},{"X","XX","XXX","XL","L","LX","LXX","LXXX","XC"},{"I","II","III","IV","V","VI","VII","VIII","IX"}};
bool cmp(node a,node b)
{
return a.s<b.s;
}
string change(int n)
{
string s1;
int cnt1=1,cnt2=0;
for(int i=1;i<=4;i++)
{
int t=n/(1000/cnt1);
if(t==0)
{
cnt2++;
n%=1000/cnt1;
cnt1*=10;
continue;
}
else
{
s1+=f[cnt2++][t-1];
}
n%=1000/cnt1;
cnt1*=10;
}
return s1;

}
int main()
{
//freopen("a.txt","r",stdin);
int t;
while(cin>>t)
{
while(t--)
{
int n;
cin>>n;
int i;
for(i=0;i<n;i++)
{
cin>>a[i].num;
a[i].s=change(a[i].num);
}
sort(a,a+n,cmp);
cout<<a[0].num;
for(i=1;i<n;i++)
{
cout<<" "<<a[i].num;
}
cout<<"/n";
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: