Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
0 / 0 / 0
Регистрация: 25.12.2016
Сообщений: 1
1

Выборы

25.12.2016, 20:24. Показов 2281. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
На выборах в Государственную думу в избирательные бюллетени внесено N партий. Электронный сканер для считывания информации с бюллетеней передает информацию о каждом бюллетене в следующем формате: если в соответствующей клетке бюллетеня стоит пометка, то сканер передает + (плюс), в противном случае он передает - (минус). Таким образом, он передает последовательность из N символов - плюсов и минусов.

Бюллетень считается действительным, если пометка есть ровно в одной клетке. Недействительные бюллетени в подсчете результатов выборов не участвуют.

Партия проходит в Государственную Думу, только если она набирает не менее 7% от общего числа действительных бюллетеней.

Требуется вывести номера (в порядке их перечисления в бюллетене) всех партий, которые проходят в Государственную Думу.

Входные данные
В первой строке входных данных содержатся два числа, разделенные пробелом: N - количество партий и M - количество бюллетеней. Оба числа натуральные, N <= 200, M <= 100 000.

В следующих M строках записана информация, полученная из бюллетеней. Каждая строка - последовательность из N символов + или - (без пробелов).

Гарантируется, что есть хотя бы один действительный бюллетень.

Выходные данные
Выведите через пробел номера партий, прошедших в Думу, в порядке возрастания. Если ни одна из партий не проходит в Думу, выводить ничего не нужно.

Как енто сделать?

Есть такой код, но он медленно работает и в нём есть ошибка.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
a,b = input().split()
a = int(a)
b = int(b)
e = 0
d = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
while b != 0:
    o = 0
    y = 0
    x = input()
    for i in range (a):
            if x[i] == "+":
               y = y+1
               o = i
    if y == 1:
        d.insert(o, d[o]+1)
        del d[o+1]
        e = e+1
    b = b-1
for i in range (a):
    if d[i] > 0.07*e:
        print (i+1, end = " ")
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.12.2016, 20:24
Ответы с готовыми решениями:

Выборы президента
На выборах президента страны Лимонии побеждает кандидат, набравший более 50% голосов. Если такого...

Задача Выборы на Питоне
На выборах в Государственную думу в избирательные бюллетени внесено N партий. Электронный сканер...

Задача Выборы в США
Условие Как известно, в США президент выбирается не прямым голосованием, а путем двухуровневого...

Задача - Выборы Президента
В выборах Президента Российской Федерации побеждает кандидат, набравший свыше половины числа...

1
563 / 303 / 189
Регистрация: 20.05.2016
Сообщений: 592
26.12.2016, 10:53 2
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
n, m = map(int, input().split())
bs = m
cnt = [0] * n
 
for _ in range(m):
    s = input()
    
    i = s.find('+')
    
    if i != -1 and s.find('+', i + 1) == -1:
        cnt[i] += 1
    else:
        bs -= 1
 
pr = 7 * bs / 100
print(' '.join(str(e) for e in cnt if e > pr))
0
26.12.2016, 10:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.12.2016, 10:53
Помогаю со студенческими работами здесь

Задача Выборы в США
Как известно, в США президент выбирается не прямым голосованием, а путем двухуровневого...

Задание на тему словари и выборы
Как известно, в КШИ Раштрапати( президент) выбирается не прямым голосованием, а путем...

Python (Словари) Выборы в государственную думу
Статья 83 закона “О выборах депутатов Государственной Думы Федерального Собрания Российской...

Задача "Выборы"
Наступил День Мелких Богов, и волшебники должны были избрать себе нового аркканцлера. Ну, не...

Выборы, выборы кандидаты PHP и Python?
Насиделся на паскале, не могу больше писать, что есть мочи изучаю на нем алгоритмизацию. Решил уйти...

Выборы
На выборах в Государственную думу в избирательные бюллетени внесено N партий. Электронный сканер...

Выборы в США
Как известно, в США президент выбирается не прямым голосованием, а путем двухуровневого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru