第六章15

【题目描述】

你知道吗?在外国,如果你不修剪你的花圃,是要被贴罚单的。Xman忙于战斗,被贴了好多罚单。这一次好不容易休息了,他决定修剪一下。修剪成什么样子呢?当然是X形。

Xman的花圃是一个n*n的正方形,其中n为大于等于3的正奇数。在每个位置上都有几个植物,对应的正整数是该植物的高度h。Xman的修剪策略是,首先把不在两条对角线上的植物通通铲光,然后在对角线上找到最矮的一株植物,把剩余的其他植物都裁剪成与它等高,这样一个漂亮整齐的X型就出来了。

Xman的东西当然值钱了。每1单位高度的植物,就可以卖2美元,把减掉的植物都卖掉,就可以弥补罚单的损失了。你帮Xman计算一下一共可以卖多少钱。

【输入】

有多行。第1行是一个整数n(n<1000),表示花圃的边长。接下来n行是一个n*n的正整数二维数组,每个正整数值表示对应植物的高度h(h<1000)。

【输出】

 仅一行。一个整数,表示卖出的美元总数。

【样例输入】

3

1 1 3

3 2 2

1 2 2

【样例输出】

24

#include<stdio.h>
int main()
{
    int n,i,j,k,all=0,min=0;
    scanf("%d",&n);
    int m[n][n],x[2*n-1];
    for(i=0;i<n;i++)
    for(j=0;j<n;j++)
    {
        scanf("%d",&m[i][j]);
        if(i==j||i+j==n-1)
        {x[k]=m[i][j];
         k++;}
        else
        all+=m[i][j];
    }
    for(k=0;k<2*n-1;k++)
    if(x[min]>x[k])
    min=k;
    for(k=0;k<2*n-1;k++)
    all+=x[k]-x[min];
    printf("%d",2*all);
    return 0;
}

 

 
posted @ 2022-11-10 22:49  aquAAA  阅读(307)  评论(0编辑  收藏  举报