Cod sursa(job #2651781)

Utilizator tudorbuhniaTudor Buhnia tudorbuhnia Data 23 septembrie 2020 16:00:40
Problema Carnati Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.89 kb
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("carnati.in");
ofstream cout("carnati.out");
int n,cp,dist[2005];
struct bos
{
    int x,y;
}v[2005];
bool bsort(bos a,bos b)
{
    return (a.x<b.x);
}
int ssm(int sum)
{
    int res=-cp,c=0;
    for (int i=0; i<n; i++)
    {
        c=c-dist[i]*cp;
        if(c<0)
            c=0;
        if(v[i].y>=sum)
            c = c + sum;
        if(c>res)
            res=c;
    }
    return res-cp;
}
int main()
{
    int x,y,output=0,xy;
    cin >> n >> cp;
    for(int i=0;i<n;i++)
    {
        cin >> x >> y;
        v[i].x=x;
        v[i].y=y;
    }
    sort(v,v+n,bsort);
    dist[0]=0;
    for(int i=1;i<n;i++)
        dist[i]=v[i].x-v[i-1].x;
    for(int i=0;i<n;i++)
    {
        xy=ssm(v[i].y);
        if(xy>output)
            output=xy;
    }
    cout << output;
    return 0;
}