Cod sursa(job #1258902)
Utilizator | Visan Tudor Cosmin VisanCosmin | Data | 9 noiembrie 2014 15:51:47 |
---|---|---|---|
Problema | Carnati | Scor | 20 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.66 kb |
#include <stdio.h>
int abs(int n)
{
if(n<0) return -n;
return n;
}
int n,p,c[100],t[100],news,old,maxs;
int main()
{
FILE*f =fopen("carnati.in","r");
fscanf(f,"%d%d",&n,&p);
for(int i = 0 ;i<n;i++)
fscanf(f,"%d%d",&t[i],&c[i]);
fclose(f);
for(int i = 0 ;i<n;i++)
{
old = news = 0;
for(int j = 0 ;j<n;j++)
{
if(c[j]>=c[i])
news = old -(abs(t[j]-t[i]))*p+c[i];
if(news >= maxs) maxs = news;
old = news;
}
}
FILE * g = fopen("carnati.out","w");
fprintf(g,"%d",maxs-p);
fclose(g);
return 0;
}