1153.cpp

来自「哈尔滨工业大学ACM 竞赛网上在线试题集锦的源代码」· C++ 代码 · 共 74 行

CPP
74
字号
/*  This Code is Submitted by wywcgs for Problem 1153 on 2005-03-20 at 13:34:56 */ 
#include <stdio.h>

int main()
{
    unsigned long move, MAX, bin[3][3], temp, m, n;
    int i, j, k;
    char order[4];
    
    while(1){
        move = 0;
        for(i = 0; i < 3; i++){
            for(j = 0; j < 3; j++){
                if(scanf("%lu", &bin[i][j]) == 1){
                    move += bin[i][j];
                }else{
                    return 0;
                }
            }
        }
        for(i = 0; i < 3; i++){
            for(j = 0; j < 3; j++){
                if(j == i){
                    continue;
                }else{
                    for(k = 0; k < 3; k++){
                        if((j == k) || (i == k)){
                            continue;
                        }else{
                            n = bin[j][1] + bin[k][2];
                            m = bin[k][1] + bin[j][2];
                            if(m >= n){
                                temp = m + bin[i][0];
                                if((i == 0) && (j == 1)){
                                    MAX = bin[i][0] + m;
                                    order[i] = 'B';
                                    order[j] = 'C';
                                    order[k] = 'G';
                                }else{
                                    if(MAX < temp){
                                        MAX = temp;
                                        order[i] = 'B';
                                        order[j] = 'C';
                                        order[k] = 'G';
                                    }
                                }
                            }else{
                                temp = n + bin[i][0];
                                if((i == 0) && (j == 1)){
                                    MAX = bin[i][0] + m;
                                    order[i] = 'B';
                                    order[j] = 'G';
                                    order[k] = 'C';
                                }else{
                                    if(MAX < temp){
                                        MAX = temp;
                                        order[i] = 'B';
                                        order[j] = 'G';
                                        order[k] = 'C';
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        order[3] = 0;
        move -= MAX;
        printf("%s %lu\n", order, move);
    }
    
    return 0;
}

⌨️ 快捷键说明

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