Pagini recente » Cod sursa (job #2623728) | Cod sursa (job #1469628) | Cod sursa (job #1576667) | Cod sursa (job #3003139) | Cod sursa (job #2938441)
#include <fstream>
#include <iostream>
using namespace std;
ifstream f ("carnati.in");
ofstream g ("carnati.out");
const int NMAX = 2000;
const int TMAX = 15e2;
const int VMAX = 2e9;
struct pers{
int timp;
int pret;
}v[NMAX+1];
int sclav[TMAX+1];
int kadane(){
int smax = -VMAX, sum = -VMAX;
for(int j=1; j<=TMAX; j++){
if(sum < 0)
sum = 0;
sum += sclav[j];
smax = max(smax, sum);
}
return smax;
}
int main()
{
int n, pret;
f>>n>>pret;
for(int i=1; i<=n; i++)
f>>v[i].timp>>v[i].pret;
int smax = -VMAX;
for(int i=1; i<=n; i++){
fill(sclav+1, sclav+1+TMAX, -1*pret);
for(int j=1; j<=n; j++)
if(v[i].pret <= v[j].pret)
sclav[v[j].timp] += v[i].pret;
smax = max(smax, kadane());
}
g << smax;
return 0;
}