Pagini recente » Cod sursa (job #1193734) | Cod sursa (job #3002224) | Cod sursa (job #204251) | Cod sursa (job #910580) | Cod sursa (job #2768108)
#include <fstream>
#include <algorithm>
#include <iostream>
using namespace std;
int n, c;
pair<int, int> v[2001];
int t[1501];
int maxtime;
void read() {
int i;
ifstream f("carnati.in");
f >> n >> c;
for (i = 1; i <= n; i++) {
f >> v[i].first >> v[i].second;
maxtime = max(maxtime, v[i].first);
}
f.close();
}
bool csort(pair<int, int> a, pair<int, int> b) {
if (a.first < b.first)
return 1;
return 0;
}
int Max;
void solve() {
int i, j, sum;
sort(v + 1, v + n + 1, csort);
for (i = 1; i <= n; i++) {
for (j = 0; j <= maxtime; j++)
t[j] = 0;
for (j = 1; j <= n; j++)
if (v[j].second >= v[i].second)
t[v[j].first] += v[i].second;
sum = 0;
for (j = 0; j <= maxtime; j++) {
sum += t[j] - c;
if (sum > Max)
Max = sum;
if (sum < 0)
sum = 0;
}
}
}
void output() {
ofstream g("carnati.out");
g << Max;
g.close();
}
int main() {
read();
solve();
output();
return 0;
}