Cod sursa(job #2166916)

Utilizator stefanbrb10Barbu Stefan stefanbrb10 Data 13 martie 2018 19:27:41
Problema Carnati Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <bits/stdc++.h>
#define nrmax 2002
#define INF 0x3f3f3f3f
using namespace std;
ifstream input("carnati.in");
ofstream print("carnati.out");

int n,c;
struct client{
    int t, p;
}v[nrmax];

bool cmp(client x, client y){
    return (x.t<y.t);
}

int sum(int index){
    int s=-1,s_max=-INF,j,x;
    for(j=1;j<=n;++j){
            if(v[index].p<=v[j].p)
               x=v[index].p;
            else x=0;
            if(j==1)
              s=x-c;
            else s=max(x-c,s+x-c*(v[j].t-v[j-1].t));
            s_max=max(s_max,s);
    }
return s_max;
}

int main(){
    int i,maxim=-INF;
    input>>n>>c;
    for(i=1;i<=n;++i)
        input>>v[i].t>>v[i].p;
    sort(v+1,v+n+1,cmp);
    for(i=1;i<=n;++i)
        maxim=max(maxim,sum(i));
    print<<maxim;
    return 0;
}