Cod sursa(job #2698756)

Utilizator Remus.RughinisRemus Rughinis Remus.Rughinis Data 22 ianuarie 2021 21:59:42
Problema Carnati Scor 0
Compilator c-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <stdio.h>
#include <stdlib.h>
#define PMAX 1000000

int o[2000],p[2000],f[PMAX + 1];
int main(){
  int n,i,j,k,c,max,s;
  FILE *fin, *fout;

  fin=fopen("carnati.in","r");
  fscanf(fin,"%d%d",&n,&c);
  for(i=0;i<n;i++){
    fscanf(fin,"%d%d",&o[i],&p[i]);
    f[p[i]]++;
  }
  fclose(fin);

  max=0;
  for(i=0;i<PMAX;i++){ ///Ciclam prin toate preturile posibile
    if(f[i]>0){
      s=0;
      if(p[j]>i)
        s+=i;
      for(j=1;j<n;j++){
        s-=c*(o[j]-o[j-1]); ///Scadem intretinerea vanzatorului
        ///Daca sirul de pana acum a fost profitabli (profitul e pozitiv) mai adaugam la sirul precedent
        ///Daca nu, pornim un nou sir si resetam s-ul
        if(s<0)
          s=0;

        if(p[j]>=i)
          s+=i;

        if(s>max)
          max=s;
      }
    }
  }

  fout=fopen("carnati.out","w");
  fprintf(fout,"%d\n",max-13);
  fclose(fout);
  return 0;
}