Pagini recente » Cod sursa (job #128942) | Diferente pentru implica-te/arhiva-educationala intre reviziile 223 si 52 | Cod sursa (job #1728668) | Cod sursa (job #1494989) | Cod sursa (job #288645)
Cod sursa(job #288645)
#include<stdio.h>
struct bilute{int nr,t;}v[3500];
int l1[3003],l2[3003],t1[3003],t2[3003],i,j,l,m,n,k,tmin=0xfffffff;
int main(){
freopen("bilute.in","r",stdin);
freopen("bilute.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d %d",&v[i].nr,&v[i].t);
for(i=1;i<=n;i++)
{l1[i]=l1[i-1]+v[i].t*v[i].nr;
t1[i]=t1[i-1]+k;
k+=v[i].nr;}
k=0;
for(i=n;i>=1;i--)
{l2[i]=l2[i+1]+v[i].t*v[i].nr;
t2[i]=t2[i+1]+k;
k+=v[i].nr;}
//for(i=1;i<=n;i++)
// {t1[i]=t1[i-1]+k;
// k+=v[i].nr;
// }
/*
k=0;
for(i=n;i>=1;i--)
{t2[i]=t2[i+1]+k;
k+=v[i].nr;
}
*/for(i=1;i<=n;i++)
if(l1[i-1]+l2[i+1]+t1[i]+t2[i]<tmin)
{tmin=l1[i-1]+l2[i+1]+t1[i]+t2[i];k=i;}
printf("%d %d",k,tmin);
return 0;}