Program Task; Const N = 499; M = 1; Var A: Array [1..N, 1..N] of Boolean; i, j, x, y, t: Integer; b: Boolean; Begin Randomize; While i < M Do Begin x := Random(N) + 1; y := Random(N) + 1; If A[x, y] = False Then Begin A[x, y] := True; i := i + 1; End; End; While b = False Do Begin b := True; For i := 1 To N Do For j := 1 To N Do Begin If A[i, j] = True Then Begin If (i + 1) <= N Then A[i + 1, j] := True; If (i - 1) > 0 Then A[i - 1, j] := True; If(j + 1) <= N Then A[i, j + 1] := True; If (j -1) > 0 Then A[i, j - 1] := True; End; End; For i := 1 To N Do For j := 1 To N Do If A[i, j] = False Then b := False; t := t + 1; End; WriteLn(t); ReadLn; End.
Поскольку числа записаны в порядке убывания, одна сумма цифр двух разрядов равна 13, другая — 11. Чтобы число было наименьшим, необходимо, чтобы в старших разрядах находилась как можно меньшая цифра, следовательно сумма старших разрядов должна быть меньшей. При разложении 11 на слагаемые необходимо, чтобы одно из них было минимально возможным, поэтому представим 11 как сумму 2 и 9, это — первые две цифры искомого числа. Вторые две цифры получатся разложением числа 13 на слагаемые: 4 и 9. Следовательно, ответ 2949.
Const N = 499; M = 1;
Var A: Array [1..N, 1..N] of Boolean;
i, j, x, y, t: Integer;
b: Boolean;
Begin
Randomize;
While i < M Do
Begin
x := Random(N) + 1;
y := Random(N) + 1;
If A[x, y] = False Then
Begin
A[x, y] := True;
i := i + 1;
End;
End;
While b = False Do
Begin
b := True;
For i := 1 To N Do
For j := 1 To N Do
Begin
If A[i, j] = True Then
Begin
If (i + 1) <= N Then
A[i + 1, j] := True;
If (i - 1) > 0 Then
A[i - 1, j] := True;
If(j + 1) <= N Then
A[i, j + 1] := True;
If (j -1) > 0 Then
A[i, j - 1] := True;
End;
End;
For i := 1 To N Do
For j := 1 To N Do
If A[i, j] = False Then
b := False;
t := t + 1;
End;
WriteLn(t);
ReadLn;
End.
Поскольку числа записаны в порядке убывания, одна сумма цифр двух разрядов равна 13, другая — 11. Чтобы число было наименьшим, необходимо, чтобы в старших разрядах находилась как можно меньшая цифра, следовательно сумма старших разрядов должна быть меньшей. При разложении 11 на слагаемые необходимо, чтобы одно из них было минимально возможным, поэтому представим 11 как сумму 2 и 9, это — первые две цифры искомого числа. Вторые две цифры получатся разложением числа 13 на слагаемые: 4 и 9. Следовательно, ответ 2949.
ответ: 2949.
Вот и все!