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

яндекс контест финансы

03.10.2019, 13:34. Показов 2720. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Написала работающий, но не эффективный код. Вердикт - неверно. Есть идеи?

You are given a content of CSV-file with information about set of trades. It contains the following columns:
TIME - Timestamp of a trade in format Hour:Minute:Second.Millisecond
PRICE - Price of one share
SIZE - Count of shares executed in this trade
EXCHANGE - The exchange that executed this trade
For each exchange find the one minute-window during which the largest number of trades took place on this exchange.

Note that:
You need to send source code of your program.
You have only 25 attempts to submit a solutions for this task.
You have access to all standart modules/packages/libraries of your language. But there is no access to additional libraries (numpy in python, boost in c++, etc).

Input format
Input contains several lines. You can read it from standart input or file “trades.csv”
Each line contains information about one trade: TIME, PRICE, SIZE and EXCHANGE. Numbers are separated by comma.
Lines are listed in ascending order of timestamps. Several lines can contain the same timestamp.
Size of input file does not exceed 5 MB.
See the example below to understand the exact input format.

Output format
If input contains information about k exchanges, print k lines to standart output.
Each line should contain the only number — maximum number of trades during one minute-window.
You should print answers for exchanges in lexicographical order of their names.
Sample

Input
09:30:01.034,36.99,100,V
09:30:55.000,37.08,205,V
09:30:55.554,36.90,54,V
09:30:55.556,36.91,99,D
09:31:01.033,36.94,100,D
09:31:01.034,36.95,900,V
Output
2
3

Notes
In the example four trades were executed on exchange “V” and two trades were executed on exchange “D”. Not all of the “V”-trades fit in one minute-window, so the answer for “V” is three.

И мои бешеные циклы:

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
X = []
with open('trades.csv', 'r') as tr:
    for line in tr:
        line = line.strip('\xef\xbb\xbf\r\n ')
        X.append(line.split(','))
dex = {}
for item in X:
    dex[item[3]] = []
for item in X:
    dex[item[3]].append(float(item[0][:2])*60.+float(item[0][3:5])+float(item[0][6:8])/60.+float(item[0][9:])/60000.)
for item in dex:
    count = 1
    ccount = 1
    if dex[item][len(dex[item])-1]-dex[item][0] <1: 
        count = len(dex[item]) 
    else:
        for t in range(len(dex[item])-1):
            for tt in range(len(dex[item])-t-1):
                if dex[item][tt+t+1]-dex[item][t] <1:
                    ccount += 1
                else: break
            if ccount>count: 
                count=ccount
            ccount=1
    print count
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
03.10.2019, 13:34
Ответы с готовыми решениями:

Яндекс Контест
Есть задача в которой нужно перевернуть строку, впрочем ничего сложного, но &quot;Яндекс Контест&quot; не хочет ее принимать отвечая &quot;Wrong...

Яндекс контест
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using...

Яндекс.Контест Warning CS8001: SDK path could not be resolved
при компиляции в яндекс контесте выдаёт данную ошибку ( Компилятор: Mono C# 5.2.0) stdout: Compilation succeeded - 1 warning(s) ...

4
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
03.10.2019, 13:37
Цитата Сообщение от anastych Посмотреть сообщение
И мои бешеные циклы:
попробуй теперь использовать бешеные теги пайтон на панели, считай что это тоже контест на сообразительность
0
0 / 0 / 0
Регистрация: 03.10.2019
Сообщений: 3
03.10.2019, 13:48  [ТС]
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
X = []
with open('trades.csv', 'r') as tr:
  for line in tr:
    line = line.strip('\xef\xbb\xbf\r\n ')
    X.append(line.split(','))
 
dex = {}
 
for item in X:
  dex[item[3]] = []
for item in X:
  dex[item[3]].append(float(item[0][:2])*60.+float(item[0][3:5])+float(item[0][6:8])/60.+float(item[0][9:])/60000.)
for item in dex:
  count = 1
  ccount = 1
  if dex[item][len(dex[item])-1]-dex[item][0] <1: 
    count = len(dex[item]) 
  else:
    for t in range(len(dex[item])-1):
      for tt in range(len(dex[item])-t-1):
        if dex[item][tt+t+1]-dex[item][t] <1:
          ccount += 1
        else: break
      if ccount>count: 
        count=ccount
      ccount=1
  print count
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
03.10.2019, 13:54
anastych, ну смотри, реально циклов многовато, сначала ты все перебираешь и кидаешь в список, потом снова начинаешь его же перебирать и потом еще. Может сразу при считывании что-то можно делать, так чтобы циклов стало поменьше?

Цитата Сообщение от anastych Посмотреть сообщение
dex[item[3]].append(float(item[0][:2])*60.+float(item[0][3:5])+float(item[0][6:8])/60.+float(item[0][9:])/60000.)
как я понимаю работа со временем, а почему не использовать datetime? он в стандартной либе и умеет со временем работать, сравнивать, разницу находить.

очень тяжело читать, переменный просто от балды, ты то понятно понимаешь, но стороннему читателю все эти ccount, t,tt,X,dex ни о чем не говорят.
1
0 / 0 / 0
Регистрация: 03.10.2019
Сообщений: 3
03.10.2019, 14:38  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
anastych, ну смотри, реально циклов многовато, сначала ты все перебираешь и кидаешь в список, потом снова начинаешь его же перебирать и потом еще. Может сразу при считывании что-то можно делать, так чтобы циклов стало поменьше?
согласна, но я не придумала, как..

Цитата Сообщение от Welemir1 Посмотреть сообщение
как я понимаю работа со временем, а почему не использовать datetime? он в стандартной либе и умеет со временем работать, сравнивать, разницу находить.
спасибо, думала, что нужно пандас для него только

Цитата Сообщение от Welemir1 Посмотреть сообщение
очень тяжело читать, переменный просто от балды, ты то понятно понимаешь, но стороннему читателю все эти ccount, t,tt,X,dex ни о чем не говорят.
даааа
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
03.10.2019, 14:38
Помогаю со студенческими работами здесь

Яндекс Контест показывает Runtime Error при выделении динамической памяти
type ptr = ^q; region = record x,y:integer; end; q = record next:ptr; reg:region; ...

[Mono] Яндес.Контест Параметры dmcs
Думаю про Яндекс.Контекст ничего рассказывать не нужно, все итак всё знают, опишу то, что мне нужно. Как написано на сайте Контеста, там...

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

Финансы
Прошу решить 2 задачки в EXCEL: Оформление на ваш вкус... Заранее, спасибо! 1. Предполагается, что в течение первых двух лет на...

Финансы
ААа, помогите!!


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных выбран регистр накопления, в. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru