UVa102 - Ecological Bin Packing

#include<stdio.h>
#define MAX 3
int a[MAX][MAX];
int main(void)
{
    int i, j, k, m, resi, resj, resk;
    int min;
    int total;
    #ifndef ONLINE_JUDGE
        freopen("d:\\UVa\\uva_in.txt", "r", stdin);
    #endif
    while (scanf("%d%d%d%d%d%d%d%d%d", &a[0][0], &a[0][2], &a[0][1], &a[1][0], &a[1][2], &a[1][1], &a[2][0], &a[2][2], &a[2][1]) != EOF) {
        min = 1 << 31 - 1;
        for (i = 0; i < 3; i++) {
            for (j = 0; j < 3; j++) {
                if (i != j) {
                    k = 3 - i - j;
                    total = 0;
                    for (m = 0; m < 3; m++)
                        if (i != m)
                            total += a[0][m];
                    for (m = 0; m < 3; m++)
                        if (j != m)
                            total += a[1][m];
                     for (m = 0; m < 3; m++)
                        if (k != m)
                            total += a[2][m];
                    if (total < min) {
                        min = total;
                        resi = i;
                        resj = j;
                        resk = k;
                    }
                }
            }
        }
        printf("%c%c%c %d\n", resi == 0?'B':(resi == 1)?'C':'G',
                              resj == 0?'B':(resj == 1)?'C':'G',
                              resk == 0?'B':(resk == 1)?'C':'G',
                              min);
    }

    return 0;
}

你可能感兴趣的:(c)