Предмет: Информатика, автор: panyukoffdima

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

Ответы

Автор ответа: Аноним
0

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

Похожие вопросы
Предмет: Математика, автор: kedinorozhkaMalaya