Pagini recente » Cod sursa (job #1520183) | Cod sursa (job #147963) | Cod sursa (job #657097) | Cod sursa (job #601912) | Cod sursa (job #679927)
Cod sursa(job #679927)
#include<fstream>
#include<algorithm>
using namespace std;
ifstream in("carnati.in");
ofstream out("carnati.out");
struct client
{
int p,t;
};
client v[2001];
int n , m , i , j ,s , maxi,local;
bool comp(client a , client b)
{
if(a.t<b.t)
return 1;
return 0;
}
int rezultat(int timp , client a , int costTimp , int pretCarnat)
{
int consumTimp = - ( ( a.t - timp ) *costTimp );//minus totul
if(pretCarnat>a.p )
return consumTimp;
else
return consumTimp+pretCarnat;
}
int main()
{
in>>n>>m;
for(i=1;i<=n;i++)
in>>v[i].t>>v[i].p;
int old=v[1].t-1;
sort(v+1,v+1+n,comp);
for(i=1;i<=n;i++)
{
s=0;
old=v[1].t-1;
for(j=1;j<=n;j++)
{
//calculare rezultat
local = rezultat( old , v[j],m,v[i].p);
//verificare
if(s + local > 0 )
{
//adunare
s=s + local;
old=v[j].t;
if(s>maxi)
maxi=s;
}
else
{
if(v[j].p>v[i].p)
{
s=v[j].p-m;
old=v[j].t;
}
else
{
s=0;
old=v[j+1].t-1;
}
}
}
}
out<<maxi;
}