zoj3501

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3501

15103904_kjSV.gif 15103904_GdjW.gif View Code

    
#include < iostream >
#include
< algorithm >
#include
< string .h >
#include
< cstdio >
using namespace std;

char a[][ 15 ] = { " 0 " , " I " , " II " , " III " , " IV " , " V " , " VI " , " VII " , " VIII " , " IX " };
char b[][ 15 ] = { " 0 " , " X " , " XX " , " XXX " , " XL " , " L " , " LX " , " LXX " , " LXXX " , " XC " };
char c[][ 15 ] = { " 0 " , " C " , " CC " , " CCC " , " CD " , " D " , " DC " , " DCC " , " DCCC " , " CM " };
char d[][ 15 ] = { " 0 " , " M " , " MM " , " MMM " };
struct node
{
char f[ 15 ];
char ch[ 15 ];

}s[
10010 ];


int cmp( const void * x, const void * y)
{
return strcmp( ((node * )x) -> ch , ((node * )y) -> ch );
}
int main()
{
int t,i,j;
int n,m;
char ch1[ 10010 ];
scanf(
" %d " , & t);
while (t -- )
{
scanf(
" %d " , & n);

for (i = 0 ;i < n;i ++ )
{
scanf(
" %s " ,ch1);
strcpy(s[i].f, ch1);
int L = strlen(ch1);
if (L == 4 )
{
strcpy(s[i].ch, d[ch1[
0 ] - ' 0 ' ]);

if (ch1[ 1 ] != ' 0 ' ) strcat(s[i].ch, c[ch1[ 1 ] - ' 0 ' ]);
if (ch1[ 2 ] != ' 0 ' ) strcat(s[i].ch, b[ch1[ 2 ] - ' 0 ' ]);
if (ch1[ 3 ] != ' 0 ' ) strcat(s[i].ch, a[ch1[ 3 ] - ' 0 ' ]);
}
if (L == 3 )
{
strcpy(s[i].ch,c[ch1[
0 ] - ' 0 ' ]);
if (ch1[ 1 ] != ' 0 ' ) strcat(s[i].ch, b[ch1[ 1 ] - ' 0 ' ]);
if (ch1[ 2 ] != ' 0 ' ) strcat(s[i].ch , a[ch1[ 2 ] - ' 0 ' ]);
}
if (L == 2 )
{
strcpy(s[i].ch , b[ch1[
0 ] - ' 0 ' ]);
if (ch1[ 1 ] != ' 0 ' ) strcat(s[i].ch, a[ch1[ 1 ] - ' 0 ' ]);
}
if (L == 1 )
{
strcpy(s[i].ch,a[ch1[
0 ] - ' 0 ' ]);
}
}
qsort(s,n,
sizeof (s[ 0 ]), cmp);

for (i = 0 ;i < n;i ++ )
{
printf(
" %s " ,s[i].f);
if (i != n - 1 ) printf( " " );
}
printf(
" \n " );
}
return 0 ;
}

转载于:https://my.oschina.net/garyun/blog/602974

猜你喜欢

转载自blog.csdn.net/weixin_34072159/article/details/91774060
今日推荐