Пришло время проверить, правильным ли было решение инвестировать деньги в заводы. Вы...

0 голосов
103 просмотров

Пришло время проверить, правильным ли было решение инвестировать деньги в заводы. Вы решаете приехать на один из заводов с инспекцией и проверить шестеренки, изготавливаемые там. Проверка проста - у всех шестеренок должен быть одинаковое количество зубцов. Формат входных данных Вводится целое положительное число n, где n - количество деталей для проверки (2 < n < 1000) Вводится n целых чисел m, где m - количество зубцов у каждой шестеренки (1 < m < 100) Формат выходных данных Выводится сообщение YES в случае, если количество зубцов у всех шестеренок оказалось одинаковым и NO, если хотя бы одна из них имеет отличное от других количество зубцов Помогите найти ошибку var n,s,i,m,m1:int64; begin s:=0; Read(n,m1); For i:=1 to n-1 do begin Read(m); if m = m1 then S:=s+1; m:=m1; end; if s = n or m1 then begin Write('YES'); end; if s <> n or m1 then Write('NO'); end. ДАЮ 45 БАЛЛОВ!!!!


Информатика (19 баллов) | 103 просмотров
Дан 1 ответ
0 голосов

//Ошибка в if.

//В принципе можно обойтись и без вычисления s. Просто

//прерывать  цикл при несовпадении двух шестеренок и

//выводить NO

var

 n, s, i, m, m1: int64;

begin

 s := 0;

 Read(n, m1);

 for i := 1 to n - 1 do

 begin

   Read(m);

   if m = m1 then

     S := s + 1;

   m := m1;

 end;

 if (s = n - 1) then  

   Write('YES');

 if (s <> n - 1) then

   Write('NO');

end.

(276 баллов)