Cod sursa(job #1794197)

Utilizator croi01Henry Croitor Jr. croi01 Data 1 noiembrie 2016 05:29:44
Problema Carnati Scor 10
Compilator c Status done
Runda Arhiva de probleme Marime 1.05 kb
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n,m,j,i,max,actual,old,ans;
    FILE * fp;
    fp = fopen("carnati.in","r");
    fscanf(fp,"%i",&n);
    fscanf(fp,"%i",&m);
    int pret[n];
    int h[n];
    for(i = 0;i<n;i++)
    {
        fscanf(fp,"%i",&h[i]);
        fscanf(fp,"%i",&pret[i]);
    }
    for(i = 0;i<n;i++)
    {
        actual = pret[0] - m*3;
        max = 0;
        for(j=1;j<n;j++)
        {
                int g = 0;
                if(pret[i] <= pret[j])
                {
                    g = pret[i];
                }
                if(actual - (h[j] - h[j-1])*m>0)
                {
                    actual = actual -(h[j] - h[j-1])*m + g;
                }
                else
                {
                    actual = g - m;
                }
                if(max < actual)
                {
                    max = actual;
                }
        }
    }
    fclose(fp);
    fp = fopen("carnati.out","w");
    fprintf(fp,"%i",max);
    fclose(fp);
    return 0;
}