Cod sursa(job #1774580)

Utilizator tiberiu.bucur17Tiberiu Constantin Emanoil Bucur tiberiu.bucur17 Data 9 octombrie 2016 09:01:52
Problema Carnati Scor 10
Compilator c Status done
Runda Arhiva de probleme Marime 0.86 kb
#include <stdio.h>
#define INF 2000000000
struct client
{
    int t,b;
}v[2001];
int main()
{
    FILE *fin,*fout;
    fin=fopen("carnati.in","r");
    fout=fopen("carnati.out","w");
    int n,c,i,max,pret,sc,j;
    fscanf(fin,"%d%d",&n,&c);
    for(i=1;i<=n;i++)
        fscanf(fin,"%d%d",&v[i].t,&v[i].b);
    v[0].t=v[1].t-1;max=-INF;
    for(i=1;i<=n;i++)
    {
        pret=v[i].b;
        sc=0;
        for(j=1;j<=n;j++)
        {
            if(pret<=v[j].b)
            {
                if(sc<(v[j].t-v[j-1].t-1)*c)
                    sc=pret-c;
                else
                    sc+=pret-(v[j].t-v[j-1].t)*c;
            }
            else
                sc-=(v[j].t-v[j-1].t)*c;
            if(sc>max)
                max=sc;
        }
    }
    fprintf(fout,"%d",max);
    fclose(fin);
    fclose(fout);
    return 0;
}