Pagini recente » Cod sursa (job #163324) | Cod sursa (job #200449) | Cod sursa (job #2062849) | Cod sursa (job #174805) | Cod sursa (job #777848)
Cod sursa(job #777848)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("carnati.in");
ofstream out("carnati.out");
struct punct
{
int t, p;
};
punct v[2005];
bool cmp(punct a, punct b)
{
return a.t < b.t;
}
int n, c;
int profit(int pret)
{
int sc, smax=-1, i;
if(v[1].p >= pret && pret > c) sc = pret - c;
else sc = 0;
for(i=2;i<=n;i++)
{
sc-=(v[i].t-v[i-1].t-1)*c;
if(sc<0)
sc=0;
if(v[i].p>=pret) sc+=pret;
sc -= c;
if(sc>smax)
{
smax=sc;
}
}
return smax;
}
int main()
{
int i, pr, max=-1;
in>>n>>c;
for(i=1;i<=n;i++)
{
in>>v[i].t>>v[i].p;
}
sort(&v[1],&v[n+1],cmp);
for(i=1;i<=n;i++)
{
pr=profit(v[i].p);
if(pr>max) max = pr;
}
out << max;
return 0;
}