Решил поделать задачи из тренировочного контеста яндекса, но столкнулся с тем что написал слишком ресурсозатратный код, нашел решение на гитхабе, но возникла проблема. Изначально дана программа на C++, но так как синтаксиса C++ я не знаю, решил конвертировать код в Python с помощью сайта-конвертера. Код на питоне не проходит все тесты, можете подсказать в чем разница программ.(Единственное в коде Python поменял вывод с файла, в стандартный)
Если нужно условие задачи то могу отправить.
#include <iostream>
#include <fstream>
#include <map>
#define ID (i->first).first
#define TIME (i->first).second
#define STATUS i->second
using namespace std;
int main() {
ifstream fin("input.txt");
ofstream fout("output.txt");
int n;
fin >> n;
multimap<pair<int, int>, char> events;
for (int i = 0; i < n; i++) {
int d, h, m, id; char status;
fin >> d >> h >> m >> id >> status;
if (status != 'B')
events.insert({{id, d*24*60 + h*60 + m}, status});
}
map<int, int> res;
for (auto i = events.begin(); i != events.end(); ++i) {
if (!res.count(ID))
res.insert({ID, 0});
if (STATUS == 'A')
res[ID] -= TIME;
if (STATUS == 'S' || STATUS == 'C')
res[ID] += TIME;
}
for (auto i = res.begin(); i != res.end(); ++i) {
fout << i->second << ' ';
}
}
from collections import defaultdict
with open("input.txt", "r") as fin:
n = int(fin.readline())
events = defaultdict(list)
for _ in range(n):
d, h, m, id_num, status = fin.readline().split()
d, h, m, id_num = int(d), int(h), int(m), int(id_num)
if status != 'B':
events[id_num].append((d*24*60 + h*60 + m, status))
res = defaultdict(int)
for id_num, event_list in events.items():
for event in event_list:
time, status = event
if status == 'A':
res[id_num] -= time
if status == 'S' or status == 'C':
res[id_num] += time
print(' '.join(sorted(map(str, res.values()), reverse=True)))