Решение задачи Пингвин Поло и матрица с Codeforces

Без пояснения   Просмотров: 30


У маленького пингвина Поло есть матрица n × m, состоящая из целых чисел. Пронумеруем строки матрицы от 1 до n сверху вниз, а столбцы от 1 до m слева направо. Обозначим через a ij элемент матрицы, стоящий на пересечении i-ой строки и j-го столбца.

За один шаг пингвин может добавить к любому элементу матрицы или отнять от любого элемента матрицы число d. Найдите минимальное количество шагов, которое требуется для того, чтобы все элементы матрицы были равны между собой. Если описанное невозможно, сообщите об этом.

Код

#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
int main(){
    ll n,m,d;
    cin >> n >> m >> d;
    ll arr[n * m];
    for(ll i = 0; i < n * m; i++)
    cin >> arr[i];
    sort(arr,arr + n * m);
    ll k = arr[n * m / 2], res = 0;
    for(ll i = 0; i < n * m; i++)
        if((k - arr[i]) % d != 0){
            cout << -1;
            exit(0);
        }
    else
        res += fabs((k - arr[i]) / d);
    cout << res;
}

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться