Uva 11470 Solution(s)

#include<stdio.h>
int main()
{
    int i,j,b,c,d;
    int e;
    int a[10][10];
    int n, u = 1, k = 0;
    while(scanf("%d", &n) && n<=10 && n>0)
    {
        for(i=0; i<n; i++)
        {
            for(j=0; j<n; j++)
            {
                scanf("%d", &a[i][j]);
            }
        }
        e = 0, b = n-1, c = 0, d = n-1;
        int sum[11] = {0};
        if(n%2 == 0)
        {
            while(e<n/2 && c<n/2)
            {
                for(i=0; i<n; i++)
                {
                    for(j=0; j<n; j++)
                    {
                        if((i == e || i == b|| j == c || j == d) && !(i<e) && !(i>b) && !(j<c) && !(j>d))
                        {
                            sum[k] = sum[k] + a[i][j];
                        }
                    }
                }
                e++, b--, c++, d--, k++;
            }
            printf("Case %d: ", u);
            for(i=0; i<k; i++)
            {
                printf("%d ", sum[i]);
            }
            k = 0, u++;
            printf("\n");
        }

        else
        {
            while(e<=n/2 && c<=n/2)
            {
                for(i=0; i<n; i++)
                {
                    for(j=0; j<n; j++)
                    {
                        if((i == e || i == b|| j == c || j == d) && !(i<e) && !(i>b) && !(j<c) && !(j>d))
                        {
                            sum[k] = sum[k] + a[i][j];
                        }
                    }
                }
                e++, b--, c++, d--, k++;
            }
            printf("Case %d:", u);
            for(i=0; i<k; i++)
            {
                printf("%d ", sum[i]);
            }
            k = 0, u++;
            printf("\n");
        }
    }
    return 0;
}

Comments