Сведения о вопросе

Oleksandr

15:45, 28th July, 2020

Теги

Дана матрица размера M × N. Элемент матрицы называется ее локальным минимумом, если он меньше всех окружающих его элементов. Заменить все локальные минимумы данной матрицы на нули. При решении допускается использовать вспомогательную матрицу.

Просмотров: 158   Ответов: 1

@



  Сведения об ответе

repe

16:34, 28th July, 2020

#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n;
    cin >> n;
    vector<vector<int> > a;
    vector<vector<int> > res;
    vector<int> tt(n + 2, 100);
    a.push_back(tt);
    for(int i = 0; i < n; ++i){
        vector<int> t(n + 2);
        t[0] = 100;
        vector<int> rt(n);
        for(int j = 1; j < n + 1;  ++j){
            cin >> t[j];
            rt[j - 1] = t[j];
        }
        t[n + 1] = 100;
        res.push_back(rt);
        a.push_back(t);
    }
    a.push_back(tt);
    
    for(int i = 1; i < a.size() - 1; ++i){
        for(int j = 1; j < a.size() - 1; ++j){
            if(a[i][j] < a[i][j - 1] && a[i][j] < a[i][j + 1])
                if(a[i][j] < a[i + 1][j] && a[i][j] < a[i - 1][j])
                    res[i - 1][j - 1] = 0;
        }
    }

    for(auto i: res){
        for(auto j: i){
            cout << j << ' ';
        }
        cout << endl;
    }
    return 0;
}

Допустим, что максиматальный элемент матрицы не прывышает 100


Ответить на вопрос

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