zoukankan      html  css  js  c++  java
  • zoj3501

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

    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;
    }
  • 相关阅读:
    网络编程(1)
    反射,魔法方法,单例模式
    远程的文件传输
    DNS
    windows服务
    outlook邮箱配置
    win7服务器搭建
    windows常用命令
    C盘满了怎么办
    0x80070035找不到网络路径
  • 原文地址:https://www.cnblogs.com/FCWORLD/p/2033962.html
Copyright © 2011-2022 走看看