1263.cpp

来自「这是哈尔滨工业大学acmOJ的源代码」· C++ 代码 · 共 63 行

CPP
63
字号
/*  This Code is Submitted by wywcgs for Problem 1263 on 2005-03-19 at 19:02:25 */ 
#include <stdio.h>
#include <string.h>

int main()
{
    char keyword[11], plaintext[101], chTemp;
    int keyLen, textLen, order[10], temp;
    int i, j, k, flag;
    
    while(scanf("%s", keyword) == 1){
        if(!strcmp(keyword, "THEEND")){
            return 0;
        }else{
            keyLen = strlen(keyword);
            for(i = 0; i < keyLen; i++){
                order[i] = i;
            }
            for(i = 0; i < keyLen; i++){
                flag = 1;
                for(j = 0; j < keyLen-1; j++){
                    if(keyword[j] > keyword[j+1]){
                        temp = order[j+1];
                        order[j+1] = order[j];
                        order[j] = temp;
                        chTemp = keyword[j+1];
                        keyword[j+1] = keyword[j];
                        keyword[j] = chTemp;
                        flag = 0;
                    }else if(keyword[j] == keyword[j+1]){
                        if(order[j] > order[j+1]){
                            temp = order[j+1];
                            order[j+1] = order[j];
                            order[j] = temp;
                            chTemp = keyword[j+1];
                            keyword[j+1] = keyword[j];
                            keyword[j] = chTemp;
                            flag = 0;
                        }
                    }
                }
                if(flag == 1){
                    break;
                }
            }
            scanf("%s", plaintext);
            textLen = strlen(plaintext) / keyLen;
            for(j = 0; j < textLen; j++){
                for(i = 0; i < keyLen; i++){
                    for(k = 0; k < keyLen; k++){                   
                        if(order[k] == i){
                            printf("%c", plaintext[k*textLen+j]);
                            break;
                        }
                    }    
                }
            }
            printf("\n");
        }
    }
    
    return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?