Pagini recente » Cod sursa (job #719026) | Cod sursa (job #253862) | Cod sursa (job #2322822) | Cod sursa (job #2158067) | Cod sursa (job #599571)
Cod sursa(job #599571)
#include <cstring>
#include <fstream>
#include <algorithm>
#include <vector>
using namespace std;
int N, C;
int S[1502], money[2002];
int maxS[1502], maxtime;
int result;
int main()
{
ifstream fin("carnati.in");
ofstream fout("carnati.out");
fin >> N >> C;
for (int i = 1, time; i <= N; ++i)
{
fin >> time >> money[i];
maxtime = max(maxtime, time);
S[time] += money[i];
}
for (int i = 1; i <= N; ++i) // daca pretul este i
{
memset(maxS, 0, sizeof(maxS));
for (int j = 0; j <= maxtime; ++j)
{
int add = (S[j] >= money[i] ? money[i] : 0);
if (j == 0) maxS[j] = add - C;
else maxS[j] = max(add - C, maxS[j - 1] + add - C);
result = max(result, maxS[j]);
}
}
fout << result;
fin.close();
fout.close();
}