Pagini recente » Monitorul de evaluare | Cod sursa (job #1215037) | Atasamentele paginii Profil FMI alexsuciu | Cod sursa (job #3315823) | Cod sursa (job #3342215)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream f ("carnati.in");
ofstream g ("carnati.out");
const int NMAX = 2000;
int N, C, sol, A[NMAX+1];
struct client {
int timp, pret;
//
bool operator < (const client &c) const {
return timp < c.timp;
}
};
client V[NMAX+1];
void citire() {
f >> N >> C;
for (int i=1; i<=N; i++)
f >> V[i].timp >> V[i].pret;
//
sort(V+1, V+N+1);
}
void solve() {
int X;
//
for (int k=1; k<=N; k++) {
X = V[k].pret;
for (int i=1; i<=N; i++) {
int profit = (X <= V[i].pret) ? X : 0;
A[i] = max(A[i-1] - (V[i].timp - V[i-1].timp) * C + profit, profit - C);
sol = max(sol, A[i]);
}
}
}
int main(){
citire();
solve();
//
g << sol;
f.close();
g.close();
return 0;
}