Нужно написать программу в паскале. на выборах в государственную думу в избирательные бюллетени внесено n партий. электронный сканер для считывания информации с бюллетеней передаёт информацию о каждом бюллетене в следующем формате: если в соответствующей клетке бюллетеня стоит пометка, то сканер передаёт + (плюс), в противном случае он передаёт − (минус). таким образом, он передаёт последовательность из n символов — плюсов и минусов. бюллетень считается действительным, если пометка есть ровно в одной клетке. недействительные бюллетени в подсчёте результатов выборов не участвуют. партия проходит в государственную думу, только если она набирает не менее 7% от общего числа действительных бюллетеней. требуется вывести номера (в порядке их перечисления в бюллетене) всех партий, которые проходят в государственную думу.

Аня1ove Аня1ove    1   02.10.2019 08:41    4

Ответы
Semykina2003 Semykina2003  09.10.2020 11:23
PascalABC.NET 3.4.2, сборка 1881 от 19.11.2018Внимание! Если программа не работает, обновите версию!

begin

 var n := ReadlnInteger('N=');

 var R := new integer[n];

 repeat

   var a := ReadlnString.ToCharArray;

   if a.Length <> N then break;

   if a.Where(c -> c = '+').Count = 1 then

     Inc(R[a.IndexOf('+')])

 until False;

 R.Transform(t -> t >= 0.07 * N ? 1 : 0);

 R.Numerate.Where(t -> t[1] = 1).Select(t -> t[0]).Println

end.

Пример

(окончание ввода - строка длины отличной от N)

N= 5

-+---

--+--

-+---

+

-+---

--+--

-+---

+

+

-+---


1 2 3 5

ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика