Pagini recente » Cod sursa (job #457483) | Cod sursa (job #2536994) | Cod sursa (job #2683014) | Cod sursa (job #2463759) | Cod sursa (job #2516863)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream fin("carnati.in");
ofstream fout("carnati.out");
const int NMAX = 2001;
const int tmp = 1505;
long long max(long long a, long long b)
{
return (a > b) ? a : b;
}
long long min(long long a, long long b)
{
return (a < b) ? a : b;
}
struct carnati
{
long long t, p;
};
inline bool cmp(carnati a, carnati b)
{
return a.p > b.p;
}
carnati a[NMAX];
long long n, c, maxi, t[tmp], nr;
int main()
{
fin >> n >> c;
for (int i = 1; i <= n; ++i)
fin >> a[i].t >> a[i].p;
sort(a + 1, a + n + 1, cmp);
for (int i = 1; i <= n; ++i)
{
++t[a[i].t + 1];
for (int j = 1; j <= a[i].t; ++j)
{
nr = t[j] * a[i].p - c + max(nr, 0);
if (nr > maxi) maxi = nr;
}
}
fout << maxi << "\n";
return 0;
}