Cod sursa(job #420063)

Utilizator Cristy94Buleandra Cristian Cristy94 Data 18 martie 2010 13:46:13
Problema Branza Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.61 kb
#include<stdio.h>
FILE *f=fopen("branza.in","r");
FILE *g=fopen("branza.out","w");
long long i,j,m[100001],n,t,s,rez;
long long c[100001],w[1000001];
long long deque[100001],u,p;

int main(){
//***citire***//	
fscanf(f,"%lld%lld%lld",&n,&s,&t);
for(i=1;i<=n;i++)
	fscanf(f,"%lld%lld",&c[i],&w[i]);

//***dinamica***//
p=1;
for(i=1;i<=n;i++)  // m[i]=costul minim pt a cumpara un kg de branza in ziua i
{  while(u-p>t)
	  p++;
  while( u>=p &&deque[p]+(u-p+1)*s > c[i] )
	     u--;
  deque[++u]=c[i];
  m[i]=deque[p]+(u-p)*s;
}
for(i=1;i<=n;i++)
	rez+=m[i]*w[i];

fprintf(g,"%lld",rez);
return 0;
}