Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/64: Рейтинг темы: голосов - 64, средняя оценка - 4.72
-23 / 3 / 0
Регистрация: 08.04.2020
Сообщений: 94

Определить результаты олимпиады для указанной школы и класса

04.11.2020, 09:12. Показов 13579. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В файле rez.csv (он будет скопирован в папку с Вашей программой) содержатся результаты олимпиады:

place,user_name,login,"1(Система счисления)","2(Количество символов)","3(Минимальное число)","4(Трамвай)","Score"

Т.е. место, имя участника, логин, названия четырех задач и сумма баллов.

Поля отделяются «,». Каждая запись об участнике находится в отдельной строке.

Логин участника имеет вид sh-kaluga16-**-##-@, где ** - номер школы, а ## - номер класса, @ - номер участника.

Например:

1-4,"У 09 11 Иванов И","sh-kaluga16-09-11-1","100(+)","100(+)","100(+1)","0(+3)"," 300"

1-4,"У 01 09 Петров П","sh-kaluga16-01-09-1","100(+2)","100(+1)","100(+)","","3 00"

Определите результаты олимпиады для указанной школы и класса.

Формат ввода
На вход программы подается два целых числа через пробел: номер школы и класс.

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

Пример
Ввод Вывод
36 11
Паксеваткин 300
Быков 200
Шошин 160
Гладышев 160
Свинарёв 140
Носонов 100
Маслов 100
Кузнецов 100
Комарова 100
Гусейнова 0
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.11.2020, 09:12
Ответы с готовыми решениями:

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

Найти, из какой школы (школ) было больше всего участников олимпиады
Прошу помощи. Болел - ничего не понял. Скоро экзамен, а я ничего не понимаю в С++. Дали примерные задачи, а я не понимаю как решать. Вот...

Результаты олимпиады
Результаты олимпиады Во время проведения олимпиады каждый из участников получил свой идентификационный номер — натуральное число....

3
48 / 44 / 4
Регистрация: 09.12.2019
Сообщений: 27
08.11.2020, 17:32
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import csv
 
d = {}
s, cl = input().split()
with open('rez.csv', encoding='utf-8') as csvfile:
    reader = csv.reader(csvfile, delimiter=',')
    for i in list(reader)[1:]:
        info = i[2].split('-')
        name = i[1].split()[3]
        score = int(i[-1])
        if int(s) == int(info[2]) and int(cl) == int(info[3]):
            if str(score) not in d:
                d[str(score)] = []
                d[str(score)].append(name)
            else:
                d[str(score)].append(name)
for i in d:
    d[i].sort(reverse=True)
d = list(d.items())
d.sort(key=lambda i: int(i[0]), reverse=True)
for key, val in d:
    for i in val:
        print(i, key)
1
-3 / 1 / 0
Регистрация: 23.12.2021
Сообщений: 11
18.10.2022, 23:17
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import csv
 
sh, cl = map(int, input().split())
 
answScore = list()
answName = list()
with open('rez.csv', encoding="utf8") as cfile:
    reader = csv.reader(cfile, delimiter=";", quotechar='"')
    '''for i, el in enumerate(reader):
        print(el)'''
    a = list(reader)
 
    a = a[1:]
    for i in a:
 
        for j in i:
            d = j.split(',')
 
            flag = False
            ind = 0
            for h in range(len(d[2])):
                if d[2][h] == '-' and not flag:
                    flag = True
                elif d[2][h] == '-' and flag:
                    ind = h
                    break
            school = d[2][ind + 1:ind + 3]
 
            clas = d[2][ind + 4:ind + 6]
            if int(school) == int(sh) and int(clas) == int(cl):
                answScore.append(int(d[-1][1:-1]))
                answName.append(d[1])
            # print(school, clas)
 
n1, n2 = zip(*[(b, a) for b, a in sorted(zip(answScore, answName))])
n11 = list(n1).copy()
n11.reverse()
n21 = list(n2).copy()
n21.reverse()
 
for i in range(len(n1)):
    f = n21[i].split()
    print(f[3], n11[i])
0
15 / 14 / 1
Регистрация: 16.11.2019
Сообщений: 33
08.11.2022, 14:33
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import csv
 
ans = dict()
school, class_ = map(int, input().split())
with open('rez.csv', encoding="utf8") as csvfile:
    reader = csv.reader(csvfile, delimiter=',', quotechar='"')
    strings = sorted([x for x in reader][1:], key=lambda x: int(x[7]), reverse=True)
    for m in strings:
        login = m[2][12:].split('-')
        if int(login[0]) == school and int(login[1]) == class_:
            if m[7] in ans:
                ans[m[7]].append(m[1].split()[3])
            else:
                ans[m[7]] = [m[1].split()[3]]
 
for m in ans:
    for n in sorted(ans[m], reverse=True):
        print(n, m)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
08.11.2022, 14:33
Помогаю со студенческими работами здесь

Результаты олимпиады
Во время проведения олимпиады каждый из участников получил свой идентификационный номер – натуральное число. Необходимо отсортировать...

Результаты олимпиады
Результаты олимпиады Во время проведения олимпиады каждый из участников получил свой идентификационный номер — натуральное число....

Результаты олимпиады
Условие: Во время проведения олимпиады каждый из участников получил свой идентификационный номер. Необходимо отсортировать список...

Результаты олимпиады
Результаты олимпиады Во время проведения олимпиады каждый из участников получил свой идентификационный номер — натуральное число....

Результаты олимпиады
Результаты олимпиады Во время проведения олимпиады каждый из участников получил свой идентификационный номер — натуральное число....


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru