PersonalCorpus 版 (精华区)

904309 2002/06/15 09:07:01.053
Big Guava ... 468 C++ Accepted 0:00.440 500

#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <string.h>
#include <stdio.h>

int isletter(char c)
{
    if (((c>='a')&&(c<='z'))||((c>='A')&&(c<='Z'))) return 1; else 
return 0;
}

void main()
{
#ifndef ONLINE_JUDGE
    freopen("c:\\uva\\input468.txt","r",stdin);
    freopen("c:\\uva\\output468.txt","w",stdout);
#endif

    char a[50000],b[50000];
    int fa[128],fb[128];
    char sa[128],sb[128],change[128];
    int i,j,k,n;

    scanf("%d\n",&n);
    while (n>0) {
        n--;
        gets(a); gets(b);
        memset(fa,0,sizeof(fa));
        memset(fb,0,sizeof(fb));
        for (i=0;i<strlen(a);i++) if (isletter(a[i])) fa[a[i]]++;
        for (i=0;i<strlen(b);i++) if (isletter(b[i])) fb[b[i]]++;
        for (i=0;i<128;i++) { sa[i]=i; sb[i]=i; }
        for (i=0;i<127;i++)
            for (j=i+1;j<128;j++) {
                if (fa[i]<fa[j]) {
                    k=fa[i]; fa[i]=fa[j]; fa[j]=k;
                    k=sa[i]; sa[i]=sa[j]; sa[j]=k;
                }
                if (fb[i]<fb[j]) {
                    k=fb[i]; fb[i]=fb[j]; fb[j]=k;
                    k=sb[i]; sb[i]=sb[j]; sb[j]=k;
                }
            }
        for (i=0;i<128;i++) change[sb[i]]=sa[i];
        for (i=0;i<strlen(b);i++)
            if (isletter(b[i])) putchar(change[b[i]]); else 
putchar(b[i]);
        printf("\n");
// 这样会P.E. ,faint.....
//        if (n>0) { printf("\n"); gets(a); }
        printf("\n"); gets(a);
    }
}
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.049毫秒