hdoj 2816 I Love You Too

I Love You Too

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 1756    Accepted Submission(s): 1056


Problem Description
This is a true story. A man showed his love to a girl,but the girl didn't replied clearly ,just gave him a Morse Code:
****-/*----/----*/****-/****-/*----/---**/*----/****-/*----/-****/***--/****-/*----/----*/**---/-****/**---/**---/***--/--***/****-/   He was so anxious that he asked for help in the Internet and after one day a girl named "Pianyi angel" found the secret of this code. She translate this code as this five steps:
1.First translate the morse code to a number string: 4194418141634192622374
2.Second she cut two number as one group 41 94 41 81 41 63 41 92 62 23 74,according to standard Mobile phone can get this alphabet: GZGTGOGXNCS
hdoj 2816 I Love You Too
3.Third she change this alphabet according to the keyboard: QWERTYUIOPASDFGHJKLZXCVBNM = ABCDEFGHIJKLMNOPQRSTUVWXYZ
So ,we can get OTOEOIOUYVL
4.Fourth, divide this alphabet to two parts: OTOEOI and OUYVL, compose again.we will get OOTUOYEVOLI
5.Finally,reverse this alphabet the answer will appear : I LOVE YOU TOO
hdoj 2816 I Love You Too
I guess you might worship Pianyi angel as me,so let's Orz her.
Now,the task is translate the number strings.
 

 

Input
A number string each line(length <= 1000). I ensure all input are legal.
 

 

Output
An upper alphabet string.
 

 

Sample Input
4194418141634192622374
41944181416341926223
 

 

Sample Output
ILOVEYOUTOO
VOYEUOOTIO
不断地模拟,根据题目翻译密码
#include<stdio.h>

#include<string.h>

#define MAX 1100

char s[MAX];

int a[30];

char str2[MAX];

char str5[MAX];

char str3[30]={"QWERTYUIOPASDFGHJKLZXCVBNM"};

char str4[30]={"ABCDEFGHIJKLMNOPQRSTUVWXYZ"};

char str1[20][5]={"\0","\0","ABC","DEF","GHI","JKL","MNO","PQRS","TUV","WXYZ"};

char str6[MAX],str7[MAX];

int main()

{

    int n,m,j,i,t,l1,l2,l3,l4;

    while(scanf("%s",s)!=EOF)

    {

        memset(a,0,sizeof(a));

        memset(str2,'\0',sizeof(str2));

        memset(str5,'\0',sizeof(str5));

        memset(str6,'\0',sizeof(str6));

        memset(str7,'\0',sizeof(str7));

        l1=strlen(s);

        j=0;

        for(i=0;i<l1;i=i+2,j++)

            str2[j]=str1[s[i]-'0'][s[i+1]-'1'];

        l2=strlen(str2);

        for(i=0;i<l2;i++)

        for(j=0;j<26;j++)

        {

            if(str2[i]==str3[j])

            {

                a[i]=j;

                break;

            }

        }

        for(i=0;i<l2;i++)

            str5[i]=str4[a[i]];

        int k=l2/2;

        j=0;

        if(l2&1)

        {

            for(i=l2-1;i>k;i--)

            str6[j++]=str5[i];   

            j=0;

            for(i=k;i>=0;i--)

            str7[j++]=str5[i];

       }

       else

       {

       	    for(i=l2-1;i>=k;i--)

            str6[j++]=str5[i];         

	        j=0;

            for(i=k-1;i>=0;i--)

            str7[j++]=str5[i];           

       }

        if(l2&1)

        for(i=0;i<=k;i++)

        {

            printf("%c",str7[i]);

            if(i==k)

            break;

            printf("%c",str6[i]);

        }

        else

        for(i=0;i<k;i++)

        {

            printf("%c",str6[i]);

            printf("%c",str7[i]);

        }

        printf("\n");

    }

    return 0;

}

  

你可能感兴趣的:(love)