Pagini recente » Cod sursa (job #505785) | Cod sursa (job #752666) | Profil MihaelaCismaru | Cod sursa (job #961017) | Cod sursa (job #1794558)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
#define max(a,b) (((a)>(b))?(a):(b))
struct str
{
int t,pret;
};
bool compare(str a,str b)
{
return a.t<b.t;
}
int main()
{
int n,m,j,i,maxv,actual,g;
FILE * fp;
fp = fopen("carnati.in","r");
fscanf(fp,"%i",&n);
fscanf(fp,"%i",&m);
str vals[2001];
for(i = 0;i<n;i++)
{
fscanf(fp,"%i",&vals[i].t);
fscanf(fp,"%i",&vals[i].pret);
}
sort(vals,vals+n,compare);
maxv = 0;
for(i = 0;i<n;++i)
{
actual = -m;
for(j=0;j<=n;++j)
{
g = 0;
if(vals[i].pret <= vals[j].pret)
{
g = vals[i].pret;
}
actual = max(g - m,actual -(vals[j].t - vals[j-1].t)*m + g);
maxv = max(actual,maxv);
}
}
fclose(fp);
fp = fopen("carnati.out","w");
fprintf(fp,"%i",maxv);
fclose(fp);
return 0;
}