Помогите пожалуйста!! Необходимо написать программку в Паскале. На выборах в Государственную

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

Задать свой вопрос
1 ответ

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 lt;gt; N then break;

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

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

 until False;

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

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

end.

Пример

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

N= 5

-+---

--+--

-+---

+----

-+---

--+--

-+---

+----

----+

-+---


1 2 3 5

, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт