Cod sursa(job #2930544)

Utilizator carinamariaCarina Maria Viespescu carinamaria Data 28 octombrie 2022 17:24:54
Problema Carnati Scor 90
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.85 kb

#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("carnati.in");
ofstream cout("carnati.out");

struct persoana{
    long long t;
    long long p;
} v[2005];
bool cmp(persoana a, persoana b) {
    if(a.t!=b.t){
        return a.t<b.t;
    }
    else
        return a.p<b.p;
}
long long i, j, n, m, c, k, aux;
long long d[2005], t[2005];
int main() {
    cin>>n>>c;
    for(i=1;i<=n;i++) {
        cin>>v[i].t>>v[i].p;
    }
    sort(v+1, v+n+1, cmp);
    for(i=1;i<=n;i++){
        for(j=1;j<=k;j++)
            t[j]=0;
        k=0;
        for(j=1;j<=n;j++) {
            if(v[j].p>=v[i].p){
                t[++k]=v[j].t;
            }
        }
        for(j=1;j<=k;j++){
            d[j]=max(v[i].p-c, d[j-1]+v[i].p-c*(t[j]-t[j-1]));
            aux = max(aux, d[j]);
        }
    }
    cout<<aux;
}