Как это уменьшить?
program hello;
var a: array of array of array of integer;
p: array of integer;
i, j,t,cnt, sum, w: integer;
m,n,k : integer;
begin
//writeln ('m=');
read (m);
//writeln (' n = ');
read (n);
//writeln ('k=');
read (k);
setlength (p, m+1);
for i: =1 to m do
read (p[i]);
setlength (a, n+1);
for i: =0 to n do
setlength (a[i], m+1);
for i: =0 to n do
for j: =0 to m do
setlength (a[i,j], k+1);
//for j: =1 to p[i]+1);
cnt: =0;
for i: =1 to n do
for j: =1 to m do
for t: =1 to p[j] do
begin
// writeln ('a[',i,j,t,']=');
read (a[i,j,t]);
end;
w: =0;
for i: =n downto 1 do
for j: =1 to m do
begin
cnt: =cnt+1;
sum: =0;
for t: =1 to p[j] do
//writeln (a[i,j,t]);
sum: =sum+(a[i,j,t]);
if sum=0 then begin w: =w+1; end;
end;
writeln (w); cnt: =0;
for i: =n downto 1 do
for j: =1 to m do
begin
cnt: =cnt+1;
sum: =0;
for t: =1 to p[j] do
//writeln (a[i,j,t]);
sum: =sum+(a[i,j,t]);
if sum=0 then begin w: =w+1; writeln (cnt); end;
end;
end.
Объяснение:
program zadacha;
var d, o: text;
i, j, k, m, s: integer;
begin
assign(d, 'c:\data.txt');
reset(d);
assign(o, 'c:\output.txt');
rewrite(o);
i := 1;
j := 1;
readln(d, m);
s := m;
while not(eof(d)) do
begin
readln(d, k);
if k = m
then i := i + 1
else
begin
if i > j then
begin
s := m;
j := i
end;
m := k
end;
end;
writeln(o, 'Число: ', s, ', длина цепочки: ', i);
close(d);
close(o)
end.
Так как целевой яп не указан написал на С#. Пример работы на рисунке 1.
Условия выделены комментариями внутри кода!
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Etazhi
{
class Program
{
static void Main(string[] args)
{
const int ET = 9, KV = 4; //Константы
int N;
Console.Write("Введите номер квартиры: ");
if (!int.TryParse(Console.ReadLine(), out N) || N < 1)
{
Console.WriteLine("Некорретный ввод");
return;
}
//Условия [Начало]
int iTop = N / KV + ((N % KV > 0) ? 1 : 0);
int Npd = (iTop-1) / ET + 1;
int Net = (iTop-1) % ET + 1;
//Условия [Конец]
Console.WriteLine("В {0}-этажном доме, где на каждом этаже по {1} квартиры, \nквартира №{2} будет располагаться в {3} подъезде на {4} этаже", ET, KV, N, Npd, Net);
}
}
}