Переписать код с c++ на python
Решал задачу на c++, нужно переписать код на python. Вот сама задача: https://ipc.susu.ru/210-2.html?problem=1786 . Сам с этим как-то не могу справиться! Нужно переписать код на python, либо решить задачу на python другим способом. P.S. Можете пожалуйста оставлять комментарии в коде.
#define MAX 2000000000
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
int n, c, k, a, b, res = 0;
vector<int> pts;
cin >> n >> c >> k;
for (int i = 0; i < n; i++)/*Заношу в вектор число подходов, чтобы опредлить сколько нужно подходов для того чтоб стать победителем*/
{
cin >> a >> b;
if (b == 0)
pts.push_back(MAX * (a < k));
else if (a >= k)
pts.push_back(0);
else
pts.push_back(((k - a) + b - 1) / b);
}
sort(pts.begin(), pts.end());
for (int i = 0; i < n; i++)/*Подсчет кол-во победителей*/
if (c >= pts[i])
{
c -= pts[i];
res++;
}
else break;
cout << res;
}
Ответы (1 шт):
Автор решения: dIm0n
→ Ссылка
MAX, res = 2000000000, 0
n, c, k = int(input()), int(input()), int(input())
pts = []
for i in range(n):
a, b = int(input()), int(input())
if b == 0:
pts.append(MAX * (a < k))
elif a >= k:
pts.append(0)
else:
pts.append(((k - a) + b - 1) // b)
pts.sort()
for i in range(n):
if c >= pts[i]:
c -= pts[i]
res += 1
else:
break
print(res)