Предмет: Информатика,
автор: 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
Похожие вопросы
Предмет: Русский язык,
автор: nastiakuzmina2010
Предмет: Литература,
автор: marinsajina
Предмет: Английский язык,
автор: plachova24
Предмет: Математика,
автор: rustamovruslan1980
Предмет: Математика,
автор: kedinorozhkaMalaya