Cod sursa(job #2317087)

Utilizator cristicioteiCiotei Cristian cristiciotei Data 12 ianuarie 2019 19:54:42
Problema Carnati Scor 10
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.02 kb
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int n,C;
struct client
{
    int timp,bani;
};
client clien[2001];
int profi (int val)
{
    int profy=0;
    int X;
    int maxim_l;
    if (val<=clien[1].bani)
        profy=val;
    profy-=C;
    for (int i=2 ; i<=n ; i++)
    {
        if (val<=clien[i].bani)
            X=val;
        else
            X=0;
        profy=max(profy-(clien[i].timp-clien[i-1].timp)*C+X,X-C);
       // if (profy<0)
         //   profy=0;
        maxim_l=max(maxim_l,profy);
    }
    return maxim_l;
}
int cmp (client a ,client b)
{
    if (a.timp<b.timp)
        return 1;
    return 0;
}
int sol;
int main()
{
    freopen("carnati.in","r",stdin);
    freopen("carnati.out","w",stdout);
   cin>>n>>C;
   for (int i=1 ; i<=n ; i++)
       cin>>clien[i].timp>>clien[i].bani;
    for (int i=1 ; i<=n ; i++)
    {
       int profit = profi (clien[i].bani);
        if (sol<profit)
            sol=profit;
    }
    cout<<sol;
    return 0;
}