Pagini recente » Cod sursa (job #1939419) | Cod sursa (job #494019) | Cod sursa (job #330195) | Cod sursa (job #1888256) | Cod sursa (job #495985)
Cod sursa(job #495985)
#include <fstream>
using namespace std;
struct client{int ora,bani;} v[1<<11];
int n,c,maxim;
ifstream in("carnati.in");
ofstream out("carnati.out");
bool cmp(client a,client b)
{
return a.ora<b.ora || a.ora==b.ora && a.bani>b.bani;
}
int main()
{
int i,p,j,st,maxl;
in>>n>>c;
for (i=1;i<=n;i++)
in>>v[i].ora>>v[i].bani;
sort(v+1,v+n+1,cmp);
maxim=-(1<<30);
for (i=1;i<=n;i++)
{
maxl=v[i].bani-c;
for (j=1;v[i].bani>v[j].bani;j++);
st=j;p=1;
for (j=st+1;j<=n;j++)
{
if (v[i].bani>v[j].bani)
continue;
if (p*v[i].bani<(v[j].ora-v[st].ora+1)*c)
{
p=0;
st=j;
}
p++;
if (p*v[i].bani-(v[j].ora-v[st].ora+1)*c>maxl)
maxl=p*v[i].bani-(v[j].ora-v[st].ora+1)*c;
}
maxim=max(maxim,maxl);
}
maxim=max(maxim,v[1].bani-c);
out<<maxim<<"\n";
return 0;
}