Cod sursa(job #2698789)

Utilizator 2016Teo@Balan 2016 Data 23 ianuarie 2021 00:08:01
Problema Carnati Scor 70
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.76 kb
#include <bits/stdc++.h>
using namespace std;
#define x1 "carnati.in"
#define x2 "carnati.out"
ifstream in(x1);
ofstream out(x2);
#define NMAX 2000
struct client {
    int p, t;
} v[NMAX];
bool cmp(const client& a, const client&b) {
    return a.t < b.t;
}
int main() {
    int n, i, j, c, ans = 0, l, l1;
    in >> n >> c;
    for(i = 1; i <= n; i++)
        in >> v[i].t >> v[i].p;
    sort(v + 1, v + n + 1, cmp);
    v[0].t = -1;
    for(i = 1; i <= n; i++) {
        l = l1 = 0;
        for(j = 1; j <= n; j++) {
            if(v[i].p <= v[j].p) {
                l = max(l + v[i].p - c * (v[j].t - v[l1].t), v[i].p - c);
                ans = max(ans, l);
                l1 = j;
            }
        }
    }
    out << ans;
    return 0;
}