Cod sursa(job #1561380)

Utilizator bogdanmarin69Bogdan Marin bogdanmarin69 Data 3 ianuarie 2016 23:53:38
Problema Carnati Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <algorithm>
#include <fstream>
using namespace std;
ifstream cin("carnati.in");
ofstream cout("carnati.out");
const int MAX = 2001;
struct client{
    int t, p;
} v[MAX];
int n, c;
int profit(int x){
    int ans = 0, cur = 0, last = v[1].t - 1;
    for(int i=1; i<=n; i++){
        cur -= (v[i].t - last - 1)*c;
        last = v[i].t - 1;
        if(cur<0)
            cur = 0;
        if(v[i].p>=x)
            cur += x;
        cur -= c;
        last = v[i].t;
        if(cur>ans)
            ans = cur;
    }
    return ans;
}
bool cmp(client a, client b){return a.t<b.t;}
int main()
{
    cin>>n>>c;
    for(int i=1; i<=n; i++)
        cin>>v[i].t>>v[i].p;
    sort(v+1, v+n+1, cmp);
    int ans = 0;
    for(int i=1; i<=n; i++){
        int pr = profit(v[i].p);
        if(pr>ans)
            ans = pr;
    }
    cout<<ans;
    return 0;
}