Pagini recente » Cod sursa (job #1797623) | Borderou de evaluare (job #367028) | Cod sursa (job #2345800) | Cod sursa (job #2306837) | Cod sursa (job #2779342)
#include <bits/stdc++.h>
std::ifstream in("carnati.in");
std::ofstream out("carnati.out");
const int maxN = (int)2e3;
int n, c;
std::pair<int, int> client[maxN + 5];
int main() {
in >> n >> c;
for (int i = 1; i <= n; i++) {
in >> client[i].first >> client[i].second;
}
int result = 0;
std::sort(client + 1, client + n + 1);
for (int i = 1; i <= n; i++) {
int cost = client[i].second;
std::vector<int> time(client[n].first + 1, 0);
for (int j = 1; j <= n; j++) {
if (client[j].second >= cost) {
time[client[j].first] += cost;
}
}
int maxSum = 0, sum = 0;
for (int t = 0; t <= client[n].first; t++) {
sum += time[t] - c;
maxSum = std::max(maxSum, sum);
if (sum < 0) {
sum = 0;
}
}
result = std::max(result, maxSum);
}
out << result << "\n";
return 0;
}