Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Нужно допилить некоторое кол-во задач на Python как можно скорее, счёт на часы в буквальном смысле :) В некоторых задачах есть пример неверного решения, пишу без табуляции и комментов, ибо много задач и нет времени, можно искать ошибки, можно заново написать - всё равно

1. Проходной балл

Для поступления в вуз абитуриент должен предъявить результаты трех экзаменов в виде ЕГЭ, каждый из них оценивается целым числом от 0 до 100 баллов. При этом абитуриенты, набравшие менее 40 баллов (неудовлетворительную оценку) по любому экзамену из конкурса выбывают. Остальные абитуриенты участвуют в конкурсе по сумме баллов за три экзамена.

В конкурсе участвует N человек, при этом количество мест равно K. Определите проходной балл, то есть такое количество баллов, что количество участников, набравших столько или больше баллов не превосходит K, а при добавлении к ним абитуриентов, набравших наибольшее количество баллов среди непринятых абитуриентов, общее число принятых абитуриентов станет больше K.

Формат ввода

Программа получает на вход количество мест K. Далее идут строки с информацией об абитуриентах, каждая из которых состоит из имени (текстовая строка содержащая произвольное число пробелов) и трех чисел от 0 до 100, разделенных пробелами.

Используйте для ввода файл input.txt с указанием кодировки utf8.

Формат вывода

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

Также возможны две ситуации, когда проходной балл не определен.

Если будут зачислены все абитуриенты, не имеющие неудовлетворительных оценок, программа должна вывести число 0.

Если количество абитуриентов, имеющих равный максимальный балл больше чем K, программа должна вывести число 1.

Используйте для вывода файл output.txt с указанием кодировки utf8.

НЕВЕРНЫЙ КОД (runtime error):

f = open('E:\input.txt', 'r')

outFile = open('E:\output.txt', 'w')

k = f.readline()

k = int(k)

lst = []

for line in f:

inLst = []

s = line.split()

for word in s:

inLst.append(word)

lst.append(inLst)

for line in lst:

line.reverse()

midLst = []

for line in lst:

if int(line[0]) > 40 and int(line[1]) > 40 and int(line[2]) > 40:

midLst.append(line)

b = []

for line in midLst:

s = int(line[0]) + int(line[1]) + int(line[2])

b.append(s)

b.sort()

b.reverse()

if len(b) >= k:

if b[k] == 0:

print(0, file=outFile)

elif b[0] == b[k]:

print(b[0], file=outFile)

elif b[k] == b[k - 1]:

j = 1

while b[k - j + 1] == b[k - j]:

j += 1

print(b[k - j], file=outFile)

else:

print(b[k - 1], file=outFile)

else:

print(b[len(b) - 1], file=outFile)

f.close()

outFile.close()

2. Встречалось ли число раньше

Во входной строке записана последовательность чисел через пробел. Для каждого числа выведите слово YES (в отдельной строке), если это число ранее встречалось в последовательности или NO, если не встречалось.

Неверный код (очень долго):

lst = list(map(int,input().split()))

for num, elem in enumerate(lst):

print('YES' if elem in lst[:num] else 'NO')

3. Сколько слов в тексте

Во входном файле (вы можете читать данные из sys.stdin, подключив библиотеку sys) записан текст. Словом считается последовательность непробельных символов идущих подряд, слова разделены одним или большим числом пробелов или символами конца строки. Определите, сколько различных слов содержится в этом тексте.

4. Угадай число

Август и Беатриса играют в игру. Август загадал натуральное число от 1 до n. Беатриса пытается угадать это число, для этого она называет некоторые множества натуральных чисел. Август отвечает Беатрисе YES, если среди названных ей чисел есть задуманное или NO в противном случае. После нескольких заданных вопросов Беатриса запуталась в том, какие вопросы она задавала и какие ответы получила и просит вас помочь ей определить, какие числа мог задумать Август.

Формат ввода

Первая строка входных данных содержит число n — наибольшее число, которое мог загадать Август. Далее идут строки, содержащие вопросы Беатрисы. Каждая строка представляет собой набор чисел, разделенных пробелами. После каждой строки с вопросом идет ответ Августа: YES или NO. Наконец, последняя строка входных данных содержит одно слово HELP.

Формат вывода

Вы должны вывести (через пробел, в порядке возрастания) все числа, которые мог задумать Август.

НЕВЕРНЫЙ КОД (в каком-то случае выдаёт ошибку):

def sortList(a):

return

n = int(input())

lst = []

yes = set()

no = set()

s = ''

while s != 'HELP':

s = input().split()

if s[0] != 'HELP':

q = input()

if q == 'YES':

for num in s:

yes.add(num)

else:

if q == 'NO':

for num in s:

no.add(num)

else:

print('error')

else:

break

yes1 = list(yes)

no1 = list(no)

yes2 = []

for el in yes1:

if el not in no1:

yes2.append(int(el))

yes2.sort()

yS = ''

for i in yes2:

yS += str(i)

yS += ' '

print(yS)

5. Полиглоты

Каждый из N школьников некоторой школы знает Mᵢ языков. Определите, какие языки знают все школьники и языки, которые знаетхотя бы один из школьников.

Формат ввода

Первая строка входных данных содержит количество школьников N. Далее идет N чисел Mᵢ, после каждого из чисел идет Mᵢ строк, содержащих названия языков, которыезнает i-й школьник. Длина названий языков не превышает 1000 символов, количестворазличных языков не более 1000. 1≤N≤1000, 1≤Mᵢ≤500.

Формат вывода

В первой строке выведите количество языков, которые знают все школьники. Начиная со второй строки - список таких языков. Затем - количество языков, которые знает хотя бы один школьник, на следующих строках - список таких языков.

НЕВЕРНЫЙ КОД (ошибка на неизвестном тесте):

scl = int(input())

langs = []

for i in range(scl):

s = input().split()

del (s[0])

for j in s:

langs.append(j)

D = {}

for lang in langs:

if lang in D:

D[lang] = D[lang] + 1

else:

D[lang] = 1

allScl = {}

oth = {}

for lang in D:

if D[lang] == scl:

allScl[lang] = D[lang]

else:

oth[lang] = D[lang]

ksA = allScl.keys()

ksA = list(ksA)

allN = len(ksA)

ksO = oth.keys()

ksO = list(ksO)

othN = len(ksO)

print(allN)

for lang in allScl:

print(lang)

print(othN)

for lang in oth:

print(lang)

6. Встречалось ли слово раньше

Во входном файле (вы можете читать данные из файла input.txt) записан текст. Словом считается последовательность непробельных подряд идущих символов. Слова разделены одним или большим числом пробелов или символами конца строки. Для каждого слова из этого текста подсчитайте, сколько раз оно встречалось в этом тексте ранее.

7. НУЖНО РЕШИТЬ ЧЕРЕЗ СЛОВАРИ

Словарь синонимов

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

Формат ввода

Программа получает на вход количество пар синонимов N. Далее следует N строк, каждая строка содержит ровно два слова-синонима. После этого следует одно слово.

Формат вывода

Программа должна вывести синоним к данному слову.

8. Самое частое слово

Дан текст. Выведите слово, которое в этом тексте встречается чаще всего. Если таких слов несколько, выведите то, которое меньше в лексикографическом порядке.

9. Частотный анализ

Дан текст. Выведите все слова, встречающиеся в тексте, по одному на каждую строку. Слова должны быть отсортированы по убыванию их количества появления в тексте, а при одинаковой частоте появления — в лексикографическом порядке.

Указание.

После того, как вы создадите словарь всех слов, вам захочется отсортироватьего по частоте встречаемости слова. Желаемого можно добиться, если создать список, элементами которого будут кортежи из двух элементов: частота встречаемости словаи само слово. Например, [(2, 'hi'), (1, 'what'), (3, 'is')]. Тогда стандартная сортировка будет сортировать список кортежей, при этом кортежи сравниваются по первому элементу, а если они равны —то по второму. Это почти то, что требуется в задаче.

10. Выборы президента

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

Формат ввода

Каждая строка входного файла содержит имя кандидата, за которого отдал голос один избиратель. Известно, что общее число кандидатов не превосходит 20, но в отличии от предыдущих задач список кандидатов явно не задан. Читайте данные из файла input.txt с указанием кодировки utf8.

Формат вывода

Если есть кандидат, набравший более 50% голосов, программа должна вывести его имя. Если такого кандидата нет, программа должна вывести имя кандидата, занявшего первое место, затем имя кандидата, занявшего второе место. Выводите данные в файл output.txt с указанием кодировки utf8.

Бюджет примерный, за все задачи разом 1500 (или договоримся), но можете браться и за одну какую-то

Актуально до 0 часов сегодня по МСК

7 лет назад
guest_15003601963213
7 лет в сервисе
Был
7 лет назад