Pagini recente » Cod sursa (job #275775) | Cod sursa (job #1788935) | Cod sursa (job #1777684) | Cod sursa (job #2197976) | Cod sursa (job #122484)
Cod sursa(job #122484)
#include<stdio.h>
#define nmax 30001
#define inf 4294967295
char k[nmax];
int sol[nmax],sol2[nmax],sol7[nmax];
unsigned long long sol3[nmax],sol4[nmax],sol5[nmax],sol6[nmax];
int main()
{
freopen("bilute.in","r",stdin);
freopen("bilute.out","w",stdout);
int c1[nmax];
int n;
unsigned long long smax=inf;
scanf("%d",&n);
int i,j;
char naspa='0';
int val1,val2,sumo=0;
for(i=1; i<=n; ++i)
{ scanf("%d%d",&val1,&val2);
if(val1)
{ c1[i]=val1;
sol5[i]=sol5[i-1]+c1[i];
sol[i]=val1*val2;
sol2[i]=sol[i]+sumo;
sumo=sol2[i];
}
else
{ k[i]='0'; naspa='1'; }
}
for(i=n; i>=1; i--)
sol6[i]=sol6[i+1]+c1[i];
for(i=1; i<=n; ++i)
sol3[i]=sol3[i-1]+sol5[i-1]+c1[i];
for(i=n; i>=1; --i){
sol4[i]=sol4[i+1]+sol6[i+1]+c1[i];
sol7[i]=sol7[i+1]+sol[i];}
unsigned long long sum;
int ibun;
for(i=1; i<=n; i++)
{
if(k[i]!='0')
{ sum=sol2[i-1]+sol7[i+1]+sol3[i-1]+sol4[i+1];
if(sum<smax){
smax=sum;
ibun=i;}
}
}
printf("%d %LLu\n",ibun,smax);
return 0;
}