Pagini recente » Cod sursa (job #57632) | Cod sursa (job #178791) | Cod sursa (job #983231) | Cod sursa (job #2144057) | Cod sursa (job #368529)
Cod sursa(job #368529)
#include<iostream>
#include<fstream>
#include<algorithm>
using namespace std;
struct carnat
{
int t,p;
};
carnat a[1<<11];
int cpmax=0;
int prdmax(int p,int c,int n)
{
int j,sc,smax=0;
if(a[1].p>=p)
sc=sc-c;
else
sc=0;
smax=sc;
for(j=2; j<=n; j++)
{
sc=sc-c*(a[j].t-a[j-1].t-1);
if(sc<0)
sc=0;
if(p<=a[j].p)
sc=sc+p;
sc-=c;
if (sc>smax)
smax=sc;
}
return smax;
}
bool comp(const carnat &x, const carnat &y)
{
return x.t<y.t;
}
int main()
{
ifstream f("carnati.in");
ofstream g("carnati.out");
int prmax,i,n,c,p;
f>>n; f>>c;
for(i=1; i<=n; i++)
{
f>>a[i].t;
f>>a[i].p;
}
sort(a+1,a+n+1,comp);
prmax=0;
for(i=1; i<=n; i++)
{
p=a[i].p;
cpmax=prdmax(a[i].p,c,n);
if( cpmax>prmax)
prmax=cpmax;
}
g<<cpmax;
return 0;
}