Cod sursa(job #117891)

Utilizator alexeiIacob Radu alexei Data 22 decembrie 2007 18:13:56
Problema Branza Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<stdio.h>
#define DIM 100000

int main()
{
    freopen("branza.in","r",stdin);
    freopen("branza.out","w",stdout);
    long long pret[DIM],cerere[DIM];
    
int n,t,s;   
 
    scanf("%d%d%d",&n,&s,&t);
    
    for(int i=1; i<=n; i++)
     scanf("%lld%lld",&pret[i],&cerere[i]);
     long long cost,costt=0,costnou;
    for(int i=n; i>1; i--){
     
     cost=pret[i]*cerere[i];
       for(int j=i-1; j>=1&&j>=i-t; j--){
    
         if(pret[j]<pret[i])
        {      
         costnou=pret[j]*cerere[i]+s*cerere[i]*(i-j);
         if(cost>costnou)
         cost=costnou;
         pret[i]=pret[j];
         
         }
    }
         
      costt+=cost;
      }  
      costt+=pret[1]*cerere[1];
 printf("%lld\n",costt);
    
    return 0;
}