Pagini recente » Cod sursa (job #1173897) | Cod sursa (job #2656945) | Cod sursa (job #152578) | Cod sursa (job #2504138) | Cod sursa (job #120014)
Cod sursa(job #120014)
#include <stdio.h>
#define NMAX 30030
int N;
long long L[NMAX], C[NMAX], Cs[NMAX], M[NMAX], S[NMAX], Ls;
void read()
{
int i;
freopen("bilute.in", "r", stdin);
scanf("%d", &N);
for (i = 1; i <= N; i++) scanf("%lld%lld", C+i, L+i);
}
void solve()
{
int i, cs1, cs2, m1, m2;
for (i = 1; i <= N; i++) Ls += (L[i]*C[i]);
for (i = 1; i <= N; i++) Cs[i] = Cs[i-1]+C[i];
for (i = 1; i <= N; i++) M[i] = M[i-1]+i*C[i];
for (i = 1; i <= N; i++)
{
cs1 = Cs[i-1]; cs2 = Cs[N]-Cs[i];
m1 = M[i-1]; m2 = M[N]-M[i];
S[i] = Ls-C[i]*L[i]+i*cs1-i*cs2-m1+m2;
}
}
void write()
{
int i, j=1;
freopen("bilute.out", "w", stdout);
S[0] = S[1];
for (i = 1; i <= N; i++)
if (S[i]<S[0]) S[0] = S[i], j = i;
printf("%d %lld\n", j, S[0]);
}
int main()
{
read();
solve();
write();
return 0;
}