题目:
Yucky Yogurt owns a warehouse that can store unused yogurt at a constant fee of S (1 <= S <= 100) cents per unit of yogurt per week. Fortuitously, yogurt does not spoil. Yucky Yogurt's warehouse is enormous, so it can hold arbitrarily many units of yogurt.
Yucky wants to find a way to make weekly deliveries of Y_i (0 <= Y_i <= 10,000) units of yogurt to its clientele (Y_i is the delivery quantity in week i). Help Yucky minimize its costs over the entire N-week period. Yogurt produced in week i, as well as any yogurt already in storage, can be used to meet Yucky's demand for that week.
* Lines 2..N+1: Line i+1 contains two space-separated integers: C_i and Y_i.
4 5 88 200 89 400 97 300 91 500
126900
思路:每次更新相邻的下一周即可。因为每周不同的是生产成本,本次都选择单位成本最低的来计算。
#include<stdio.h>
int main()
{
int N,S;
int C[10001],Y[10001];
scanf("%d %d",&N,&S);
scanf("%d %d",&C[0],&Y[0]);
long long sum = 0;
sum += C[0] * Y[0];
for(int i = 1;i < N;i ++)
{
scanf("%d %d",&C[i],&Y[i]);
if(C[i-1]+S < C[i])
C[i] =C[i-1]+S;
sum += C[i]*Y[i];
}
printf("%lld\n",sum);
}