// PascalABC.NET 3.1, сборка 1250 от 28.05.2016 procedure MasPrint(a:array[,] of integer; k:integer); begin for var i:=0 to Length(a,0)-1 do begin for var j:=0 to Length(a,1)-1 do Write(a[i,j]:k); Writeln end end;
begin var n:=ReadInteger('Задайте число строк/столбцов в массиве:'); var a:=MatrixRandom(n,n,-99,99); Writeln('Исходный массив'); MasPrint(a,4); for var i:=0 to n-1 do for var j:=0 to n-1 do if i=j then a[i,j]:=1 else a[i,j]:=0; Writeln('Результирующий массив'); MasPrint(a,2) end.
int main() { int n; scanf("%d", &n); bool a[n][n]; memset(a, true, sizeof(a)); int m; scanf("%d", &m); for (int k = 0; k < m; ++k) { int x, y, aa; scanf("%d%d%d", &x, &y, &aa); for (int i = x; i < min(x + aa, n + 1); ++i) { for (int j = y; j < min(y + aa, n + 1); ++j) { a[i][j] = false; } } } int cnt = 0; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (a[i][j]) { cnt++; } } } printf("%d", cnt); return 0; }
procedure MasPrint(a:array[,] of integer; k:integer);
begin
for var i:=0 to Length(a,0)-1 do begin
for var j:=0 to Length(a,1)-1 do Write(a[i,j]:k);
Writeln
end
end;
begin
var n:=ReadInteger('Задайте число строк/столбцов в массиве:');
var a:=MatrixRandom(n,n,-99,99);
Writeln('Исходный массив');
MasPrint(a,4);
for var i:=0 to n-1 do
for var j:=0 to n-1 do
if i=j then a[i,j]:=1 else a[i,j]:=0;
Writeln('Результирующий массив');
MasPrint(a,2)
end.
Тестовое решение
Задайте число строк/столбцов в массиве: 8
Исходный массив
42 94 45 -22 -15 -19 -43 68
-55 -52 -81 62 -16 -11 40 -2
-95 -94 -1 -83 63 -9 29 -15
-82 53 -26 24 -47 -74 45 48
55 -50 -23 30 -95 77 -47 -55
96 40 32 11 -14 -41 -36 -11
88 37 -81 -59 -83 -27 -19 -49
-35 -39 -39 32 -93 33 16 -80
Результирующий массив
1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1
#include <string.h>
#include <algorithm>
using namespace std;
int main() {
int n;
scanf("%d", &n);
bool a[n][n];
memset(a, true, sizeof(a));
int m;
scanf("%d", &m);
for (int k = 0; k < m; ++k) {
int x, y, aa;
scanf("%d%d%d", &x, &y, &aa);
for (int i = x; i < min(x + aa, n + 1); ++i) {
for (int j = y; j < min(y + aa, n + 1); ++j) {
a[i][j] = false;
}
}
}
int cnt = 0;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (a[i][j]) {
cnt++;
}
}
}
printf("%d", cnt);
return 0;
}