Pagini recente » Cod sursa (job #611297) | Cod sursa (job #43508) | Cod sursa (job #1666402) | Cod sursa (job #3245513) | Cod sursa (job #2819885)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("carnati.in");
ofstream fout ("carnati.out");
const int MAXN = 2005;
const int TIME = 1500;
struct customer{
int t;
int p;
} v[MAXN];
inline bool cmp(const customer &a, const customer &b){
return a.t < b.t;
}
int dp[TIME + 5];
int n, c, price, sum, sol = -2e9;
int main (){
fin>>n>>c;
for(int i=1; i<=n; i++)
fin>>v[i].t>>v[i].p;
sort(v+1, v+n+1, cmp);
for(int i=1; i<=n; i++){
price = v[i].p;
for(int j=1; j<=n; j++)
if(v[j].p >= price)
dp[ v[j].t ] += price;
sum = 0;
for(int j=0; j<=TIME; j++){
dp[j] -= c;
if(sum + dp[j] > dp[j])
sum += dp[j];
else
sum = dp[j];
sol = max(sol, sum);
dp[j] = 0;
}
}
fout<<sol;
return 0;
}