Cod sursa(job #963354)

Utilizator mihail.jianuJianu Mihail mihail.jianu Data 17 iunie 2013 11:44:14
Problema Branza Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.64 kb
#include<cstdio>
#define ll long long
const int N=100001;
struct sapt{
    ll c,p;
};
sapt v[N];
ll d[N];
ll s[N];
ll n,t,i,sapt;
ll nr;
int main(){
    freopen("branza.in","r",stdin);
    freopen("branza.out","w",stdout);
    scanf("%d%d%d",&n,&t,&sapt);
    for(i=1;i<=n;i++)
        scanf("%d%d",&v[i].c,&v[i].p);
    d[1]=1;
    s[1]=v[1].c*v[1].p;
    for(i=2;i<=n;i++){
        s[i]=v[i].c*v[i].p+s[i-1];
        d[i]=i;
        nr=t*v[i].p*(i-d[i-1])+s[i-1]+v[d[i-1]].c*v[i].p;
        if(nr<s[i] && i-d[i-1]<=sapt){
            s[i]=nr;
            d[i]=d[i-1];
        }
    }
    printf("%I64d",s[n]);
    return 0;
}