/* package whatever; // don't place package name! */
#include <iostream>
#include <cstring>
using namespace std;
int main(void){
const int ROWS = 5;
const int COLS = 4;
int mat[ROWS][COLS] = {
{ 1, 1, 0, 4 },
{ 2, 0, 3, 4 },
{ 3, 3, 3, 4 },
{ 4, 4, 3, 4 },
{ 5, 5, 3, 0 }
};
int i, j;
int rows = ROWS;
int cols = COLS;
//вывод исходной матрицы
for(i = 0; i < rows; ++i){
for(j = 0; j < cols; ++j)
cout << mat[i][j] << ' ';
cout.put('\n');
}
cout.put('\n');
//удаление
for(i = 0; i < rows; ++i){
for(j = 0; j < cols; ++j){
if(mat[i][j] != 0)
continue;
for(int r = 0; r < rows; ++r)
memcpy(&mat[r][j], &mat[r][j + 1],(cols-(j+1))*sizeof(int));
//смещение строк
for(int c = 0; c < cols; ++c){
for(int r = i; r < (rows - 1); ++r)
mat[r][c] = mat[r + 1][c];
}
--cols;
--rows;
--i;
j = 0;
}
}
//вывод обработаной матрицы
for(i = 0; i < rows; ++i){
for(j = 0; j < cols; ++j)
cout << mat[i][j] << ' ';
cout.put('\n');
}
return 0;
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAogCiAKaW50IG1haW4odm9pZCl7Cgljb25zdCBpbnQgUk9XUyA9IDU7Cgljb25zdCBpbnQgQ09MUyA9IDQ7CiAKCWludCBtYXRbUk9XU11bQ09MU10gPSB7CgkJeyAxLCAxLCAwLCA0IH0sCgkJeyAyLCAwLCAzLCA0IH0sCgkJeyAzLCAzLCAzLCA0IH0sCgkJeyA0LCA0LCAzLCA0IH0sCgkJeyA1LCA1LCAzLCAwIH0KCX07CiAKCWludCBpLCBqOwoJaW50IHJvd3MgPSBST1dTOwoJaW50IGNvbHMgPSBDT0xTOwogCgkvL9Cy0YvQstC+0LQg0LjRgdGF0L7QtNC90L7QuSDQvNCw0YLRgNC40YbRiwoJZm9yKGkgPSAwOyBpIDwgcm93czsgKytpKXsKCQlmb3IoaiA9IDA7IGogPCBjb2xzOyArK2opCgkJCWNvdXQgPDwgbWF0W2ldW2pdIDw8ICcgJzsKCQljb3V0LnB1dCgnXG4nKTsKCX0KCWNvdXQucHV0KCdcbicpOwogCiAKCS8v0YPQtNCw0LvQtdC90LjQtQoJZm9yKGkgPSAwOyBpIDwgcm93czsgKytpKXsKCQlmb3IoaiA9IDA7IGogPCBjb2xzOyArK2opewoJCQlpZihtYXRbaV1bal0gIT0gMCkKCQkJCWNvbnRpbnVlOwogCgkJCWZvcihpbnQgciA9IDA7IHIgPCByb3dzOyArK3IpCgkJCQltZW1jcHkoJm1hdFtyXVtqXSwgJm1hdFtyXVtqICsgMV0sKGNvbHMtKGorMSkpKnNpemVvZihpbnQpKTsKIAoJCQkvL9GB0LzQtdGJ0LXQvdC40LUg0YHRgtGA0L7QugoJCQlmb3IoaW50IGMgPSAwOyBjIDwgY29sczsgKytjKXsKCQkJCWZvcihpbnQgciA9IGk7IHIgPCAocm93cyAtIDEpOyArK3IpCgkJCQkJbWF0W3JdW2NdID0gbWF0W3IgKyAxXVtjXTsKCQkJfQoJCQktLWNvbHM7CgkJCS0tcm93czsKCQkJLS1pOwoJCQlqID0gMDsKCQl9Cgl9CiAKCS8v0LLRi9Cy0L7QtCDQvtCx0YDQsNCx0L7RgtCw0L3QvtC5INC80LDRgtGA0LjRhtGLCglmb3IoaSA9IDA7IGkgPCByb3dzOyArK2kpewoJCWZvcihqID0gMDsgaiA8IGNvbHM7ICsraikKCQkJY291dCA8PCBtYXRbaV1bal0gPDwgJyAnOwoJCWNvdXQucHV0KCdcbicpOwoJfQoJcmV0dXJuIDA7Cn0=