Pagini recente » Profil eduardmircea | Cod sursa (job #2415432) | Cowfood | Diferente pentru propuneri/6-arhiva-educationala intre reviziile 5 si 6 | Cod sursa (job #956324)
Cod sursa(job #956324)
#include <stdio.h>
int d[10000000],k,s,n,st,dr,v[10000000],a;
int calc2(int q){
return v[d[st]]+(a*(q-d[st]));
}
int calc1(int q){
return v[d[dr]]+(a*(q-d[dr]));
}
void stanga(int i){
if(i-d[st]==k){
st++;
}
}
void dreapta(int i){
while((st<=dr)&&(v[i]<=calc1(i))){
dr--;
}
}
int main(){
int i,j,x,s=0;
FILE *fin,*fout;
fin=fopen("branza.in","r");
fout=fopen("branza.out","w");
fscanf(fin,"%d%d%d",&n,&a,&k);
i=0;
st=1;
while(i<n){
i++;
fscanf(fin,"%d%d",&v[i],&x);
stanga(i);
dreapta(i);
dr++;
d[dr]=i;
s+=x*calc2(i);
}
fprintf(fout,"%d",s);
}