Pagini recente » Cod sursa (job #1454744) | Cod sursa (job #604849) | Cod sursa (job #698344) | Cod sursa (job #442785) | Cod sursa (job #1774741)
#include <bits/stdc++.h>
using namespace std;
#define maxim(a, b)(a>b?a:b)
struct om{
int timp;
int pret;
};
om v[2001];
bool cmp(om A, om B) {
return A.timp < B.timp;
}
int main() {
FILE *fin = fopen("carnati.in", "r");
FILE *fout = fopen("carnati.out", "w");
int n, c;/// n nr de oameni, c salariul vanzatorului
fscanf(fin, "%d%d", &n, &c);
int i, j;
for(i = 1;i <= n;i++) {
fscanf(fin, "%d%d", &v[i].timp, &v[i].pret);
}
sort(v, v+n+1, cmp);
int prcurent, max = -1, sc;
int devandut;
int ore;
v[0].timp = v[0].pret = -100;
for(i = 1;i <= n;i++) {
prcurent = v[i].pret;
sc = 0;
for(j = 1;j <= n;j++) {
devandut = 0;
if(v[j].pret>=prcurent)
devandut = prcurent;
ore = v[j].timp - v[j - 1].timp;
sc = maxim(sc + devandut - c * ore, devandut - c);
max = maxim(max, sc);
}
}
fprintf(fout, "%d", max);
fclose(fin);
fclose(fout);
return 0;
}