Cod sursa(job #1336305)

Utilizator Vlad_317Vlad Panait Vlad_317 Data 7 februarie 2015 16:27:18
Problema Carnati Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.88 kb
#include <stdio.h>
#include <algorithm>

using namespace std;

#define MAX 2000

struct date
{
    int a, b;
}v[MAX];

bool cmp(date x, date y)
{
    return x.a<y.a;
}

int main()
{
    FILE *fin,*fout;

    fin=fopen("carnati.in","r");
    fout=fopen("carnati.out","w");

    int n,i,c,last=0,sumcur=0,o,ne,max=0;

    fscanf(fin,"%d%d",&n,&c);

    for(i=1;i<=n;i++)
        fscanf(fin,"%d%d",&v[i].a,&v[i].b);

    sort(v+1,v+n+1,cmp);

    for(i=1;i<=n;i++)
    {
        int g;
        o=0;
        for(int j=1;j<=n;j++)
        {
            if(v[j].b>=v[i].b)
                g=v[i].b;
            else
                g=0;
            ne=o-(v[j].a-v[j-1].a)*c+g;
            if(ne<g-c)
                ne=g-c;
            if(ne>max)
                max=ne;
            o=ne;
        }
    }

    fprintf(fout,"%d",max);


    return 0;
}