/* цей код написано користувачем Koala форуму replace.org.ua. Відтворення і
використання цілком або частинами дозволяється виключно за умови надання в гілку
http://r...content-available-to-author-only...g.ua/topic/9417/ відеостріма зі здачі цього коду замовнику/викладачу */
#include <iostream>
#include <vector>
#include <random>
#include <algorithm>
int main() {
int width, height;
std::cout<<"Введіть через пробіл кількість рядків і стовбчиків: ";
std::cin>>height>>width;
std::vector<std::vector<int>> matrix(height);
std::default_random_engine generator;
std::uniform_int_distribution<int> distribution(-20,20);
std::generate(matrix.begin(),matrix.end(),[&](){
std::vector<int> line(width);
std::generate(line.begin(),line.end(),[&](){return distribution(generator);});
return line;
});
std::cout<<"Початкова матриця:\n";
std::for_each(matrix.begin(),matrix.end(),[&](std::vector<int> & line){
std::for_each(line.begin(),line.end(),[&](int x){std::cout<<x<<" ";});
std::cout<<"\n";
});
auto min_line = std::min_element(matrix.begin(),matrix.end(),
[](std::vector<int> & left, std::vector<int> & right){
return *std::min_element(left.begin(),left.end()) < *std::min_element(right.begin(),right.end());
});
std::swap(*min_element(min_line->begin(), min_line->end()),matrix[height-1][0]);
auto max_line = std::max_element(matrix.begin(),matrix.end(),
[](std::vector<int> & left, std::vector<int> & right){
return *std::max_element(left.begin(),left.end()) < *std::max_element(right.begin(),right.end());
});
std::swap(*std::max_element(max_line->begin(), max_line->end()),matrix[0][width-1]);
std::cout<<"Матриця після обмінів:\n";
std::for_each(matrix.begin(),matrix.end(),[&](std::vector<int> & line){
std::for_each(line.begin(),line.end(),[&](int x){std::cout<<x<<" ";});
std::cout<<"\n";
});
return 0;
}
Lyog0YbQtdC5INC60L7QtCDQvdCw0L/QuNGB0LDQvdC+INC60L7RgNC40YHRgtGD0LLQsNGH0LXQvCBLb2FsYSDRhNC+0YDRg9C80YMgcmVwbGFjZS5vcmcudWEuINCS0ZbQtNGC0LLQvtGA0LXQvdC90Y8g0ZYgCtCy0LjQutC+0YDQuNGB0YLQsNC90L3RjyDRhtGW0LvQutC+0Lwg0LDQsdC+INGH0LDRgdGC0LjQvdCw0LzQuCDQtNC+0LfQstC+0LvRj9GU0YLRjNGB0Y8g0LLQuNC60LvRjtGH0L3QviDQt9CwINGD0LzQvtCy0Lgg0L3QsNC00LDQvdC90Y8g0LIg0LPRltC70LrRgwpodHRwOi8vci4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uZy51YS90b3BpYy85NDE3LyDQstGW0LTQtdC+0YHRgtGA0ZbQvNCwINC30ZYg0LfQtNCw0YfRliDRhtGM0L7Qs9C+INC60L7QtNGDINC30LDQvNC+0LLQvdC40LrRgy/QstC40LrQu9Cw0LTQsNGH0YMgKi8KCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHJhbmRvbT4KI2luY2x1ZGUgPGFsZ29yaXRobT4KCmludCBtYWluKCkgewoJaW50IHdpZHRoLCBoZWlnaHQ7CglzdGQ6OmNvdXQ8PCLQktCy0LXQtNGW0YLRjCDRh9C10YDQtdC3INC/0YDQvtCx0ZbQuyDQutGW0LvRjNC60ZbRgdGC0Ywg0YDRj9C00LrRltCyINGWINGB0YLQvtCy0LHRh9C40LrRltCyOiAiOwoJc3RkOjpjaW4+PmhlaWdodD4+d2lkdGg7CglzdGQ6OnZlY3RvcjxzdGQ6OnZlY3RvcjxpbnQ+PiBtYXRyaXgoaGVpZ2h0KTsKCQoJc3RkOjpkZWZhdWx0X3JhbmRvbV9lbmdpbmUgZ2VuZXJhdG9yOwoJc3RkOjp1bmlmb3JtX2ludF9kaXN0cmlidXRpb248aW50PiBkaXN0cmlidXRpb24oLTIwLDIwKTsJCglzdGQ6OmdlbmVyYXRlKG1hdHJpeC5iZWdpbigpLG1hdHJpeC5lbmQoKSxbJl0oKXsKCQlzdGQ6OnZlY3RvcjxpbnQ+IGxpbmUod2lkdGgpOwoJCXN0ZDo6Z2VuZXJhdGUobGluZS5iZWdpbigpLGxpbmUuZW5kKCksWyZdKCl7cmV0dXJuIGRpc3RyaWJ1dGlvbihnZW5lcmF0b3IpO30pOwoJCXJldHVybiBsaW5lOwoJfSk7CgkKCXN0ZDo6Y291dDw8ItCf0L7Rh9Cw0YLQutC+0LLQsCDQvNCw0YLRgNC40YbRjzpcbiI7CglzdGQ6OmZvcl9lYWNoKG1hdHJpeC5iZWdpbigpLG1hdHJpeC5lbmQoKSxbJl0oc3RkOjp2ZWN0b3I8aW50PiAmIGxpbmUpewoJCXN0ZDo6Zm9yX2VhY2gobGluZS5iZWdpbigpLGxpbmUuZW5kKCksWyZdKGludCB4KXtzdGQ6OmNvdXQ8PHg8PCIgIjt9KTsKCQlzdGQ6OmNvdXQ8PCJcbiI7Cgl9KTsKCQoJYXV0byBtaW5fbGluZSA9IHN0ZDo6bWluX2VsZW1lbnQobWF0cml4LmJlZ2luKCksbWF0cml4LmVuZCgpLAoJICAgICAgICAgICAgICBbXShzdGQ6OnZlY3RvcjxpbnQ+ICYgbGVmdCwgc3RkOjp2ZWN0b3I8aW50PiAmIHJpZ2h0KXsKCSAgICAgICAgICAgIAkJcmV0dXJuICpzdGQ6Om1pbl9lbGVtZW50KGxlZnQuYmVnaW4oKSxsZWZ0LmVuZCgpKSA8ICpzdGQ6Om1pbl9lbGVtZW50KHJpZ2h0LmJlZ2luKCkscmlnaHQuZW5kKCkpOwoJICAgICAgICAgICAgICB9KTsKCXN0ZDo6c3dhcCgqbWluX2VsZW1lbnQobWluX2xpbmUtPmJlZ2luKCksIG1pbl9saW5lLT5lbmQoKSksbWF0cml4W2hlaWdodC0xXVswXSk7CgkKCWF1dG8gbWF4X2xpbmUgPSBzdGQ6Om1heF9lbGVtZW50KG1hdHJpeC5iZWdpbigpLG1hdHJpeC5lbmQoKSwKCSAgICAgICAgICAgICAgW10oc3RkOjp2ZWN0b3I8aW50PiAmIGxlZnQsIHN0ZDo6dmVjdG9yPGludD4gJiByaWdodCl7CgkgICAgICAgICAgICAJCXJldHVybiAqc3RkOjptYXhfZWxlbWVudChsZWZ0LmJlZ2luKCksbGVmdC5lbmQoKSkgPCAqc3RkOjptYXhfZWxlbWVudChyaWdodC5iZWdpbigpLHJpZ2h0LmVuZCgpKTsKCSAgICAgICAgICAgICAgfSk7CglzdGQ6OnN3YXAoKnN0ZDo6bWF4X2VsZW1lbnQobWF4X2xpbmUtPmJlZ2luKCksIG1heF9saW5lLT5lbmQoKSksbWF0cml4WzBdW3dpZHRoLTFdKTsKCglzdGQ6OmNvdXQ8PCLQnNCw0YLRgNC40YbRjyDQv9GW0YHQu9GPINC+0LHQvNGW0L3RltCyOlxuIjsKCXN0ZDo6Zm9yX2VhY2gobWF0cml4LmJlZ2luKCksbWF0cml4LmVuZCgpLFsmXShzdGQ6OnZlY3RvcjxpbnQ+ICYgbGluZSl7CgkJc3RkOjpmb3JfZWFjaChsaW5lLmJlZ2luKCksbGluZS5lbmQoKSxbJl0oaW50IHgpe3N0ZDo6Y291dDw8eDw8IiAiO30pOwoJCXN0ZDo6Y291dDw8IlxuIjsKCX0pOwoJcmV0dXJuIDA7Cn0=