2021-08-19 AcWing 3809. 修改数组

输入样例:

2
3
10 1 4
5
1 1 2 2 3

输出样例:

3 7
2 0

巧用所给的数据范围,从1-100遍历判断即可

#include <iostream>
#include <limits.h>

using namespace std;

int a[1010];
int main() 
{
    int t;
    cin >> t;
    while(t--) 
    {
        int n;
        cin >> n;
        for(int i =0 ; i < n; i++) cin >> a[i];

        int minn = INT_MAX, res = 0;
        for(int i = 1; i <= 100; i++) 
        {
            int sum = 0;
            for(int j = 0; j < n; j++) 
            {
                if(a[j] > i + 1) 
                    sum += a[j] - (i + 1);
                else if(a[j] < i - 1) 
                    sum += (i - 1) - a[j];
            }
            if(sum < minn) {
                minn = sum;
                res = i;
            }
        }

        cout << res << " " << minn << endl;

    }
    return 0;
}

posted @ 2021-08-19 22:33  泥烟  阅读(22)  评论(0编辑  收藏  举报