Pagini recente » Cod sursa (job #762646) | Cod sursa (job #781257) | Cod sursa (job #1104420) | Cod sursa (job #1979557) | Cod sursa (job #2698729)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("carnati.in");
ofstream out("carnati.out");
const int MAXN = 2000;
int timp[MAXN], pret[MAXN], s[MAXN];
int main()
{
int n, c, i, sum, profit, j, t;
in>>n>>c;
for( i = 0; i < n; i++ ){
in>>timp[i]>>pret[i];
//pret[i] = pret[i] - c * timp[i];
}
profit = -1;
t = 0;
for( i = 0; i < n; i++ ){
sum = pret[i];
//out<<sum<<'\n';
t = 0;
if( pret[0] >= sum )
s[0] = sum;
else{
s[0] = 0;
t = 0;
}
for( j = 1; j < n; j++ ){
if( pret[j] >= sum){
if( s[ j - 1 ] >= 0 && j != 1 ){
s[j] = s[ j - 1 ] + sum - c * ( timp[j] - t );
}
else
s[j] = sum;
t = timp[j];
}
else
s[j] = s[ j - 1 ];
}
for( j = 0; j < n; j++ ){
//out<<s[j]<<" ";
if( profit < s[j] )
profit = s[j];
s[j] = 0;
}
//out<<'\n';
}
out<<profit - c;
return 0;
}