Cod sursa(job #2072985)

Utilizator RaduXD1Nicolae Radu RaduXD1 Data 22 noiembrie 2017 16:11:42
Problema Carnati Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.84 kb
#include <fstream>
#include <algorithm>
#define t first
#define p second
using namespace std;
ifstream fin("carnati.in");
ofstream fout("carnati.out");
int i, j, n,c;
long long maxi, prof;
pair <int , int> v[2002];
int ver(int a)
{
    if(a>=v[i].p)
        return v[i].p;
    else
        return 0;
}

int main()
{
    fin>>n>>c;
    for(i=1;i<=n;i++)
        fin>>v[i].t>>v[i].p;
    sort(v+1, v+n+1);
    for(i=1;i<=n;i++)
    {
        prof=ver(v[1].p)-c;
        maxi=max(maxi, prof);
        for(j=2;j<=n;j++)
        {
            if(prof-(v[j].t-v[j-1].t)*c+ver(v[j].p)>=ver(v[j].p)-c)
                prof=prof-(v[j].t-v[j-1].t)*c+ver(v[j].p);
            else
                prof=ver(v[j].p)-c;
            maxi=max(maxi, prof);
        }
    }
    fout<<maxi;
    fin.close();
    fout.close();
    return 0;
}