//BAEKJOON 18111
#include <stdio.h>

int arr[502][502], b[2][502]; //b[0] max, b[1] min

int main() {
    int n, m, B, h, max=-1, min=257;
    long long t=0;
    scanf("%d %d %d", &n, &m, &B);

    for(int i=1; i<=n; i++)
        for(int j=1; j<=m; j++) {
            scanf("%d", &arr[i][j]);
            if(max<arr[i][j]) max=arr[i][j];
            if(min>arr[i][j]) min=arr[i][j];
    }

    for(int H=min; H<=max; H++) {
        for(int i=1; i<=n; i++)
            for(int j=1; j<=m; j++) {
                if(H-arr[i][j]>0) b[0][H-min]+=H-arr[i][j];
                else b[1][H-min]+=arr[i][j]-H;

                //printf("%d %d\n", b[0][H-min], b[1][H-min]);
            }
    }

    int flag=1; //flag:
    t=b[0][0]+b[1][0]*2;
    h=min;

    for(int i=1; i<=max-min && flag==1; i++) {
        if(b[0][i]>B) flag=0;
        if(flag!=1) break;
        long long tmp_t=b[0][i]+b[1][i]*2;
        //debug : printf("%lld", tmp_t);
        if(tmp_t<=t) {
            t=tmp_t;
            h=i+min;
        }
    }

    printf("%lld %d", t, h);
}

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: