Pagini recente » Cod sursa (job #2657703) | Cod sursa (job #1443980) | Cod sursa (job #2756693) | Cod sursa (job #1553262) | Cod sursa (job #1383621)
#include <stdio.h>
#define MAXN 30000
#define INF 2000000000
int l[MAXN + 1], c[MAXN + 1];
int main(){
FILE *in = fopen("bilute.in", "r");
int n, i;
long long sum = 0;
fscanf(in, "%d", &n);
for(i = 1; i <= n; i++){
fscanf(in, "%d%d", &c[i], &l[i]);
if(i > 1)
sum += 1LL * l[i] * c[i] + 1LL * (i - 1) * c[i];
c[i] += c[i - 1];
}
fclose(in);
long long rez = sum;
int nt = 1;
for(i = 2; i <= n; i++){
sum += 1LL * l[i - 1] * (c[i - 1] - c[i - 2]);
sum -= 1LL * l[i] * (c[i] - c[i - 1]);
sum += c[i - 1];
sum -= c[n] - c[i - 1];
if(sum < rez){
rez = sum;
nt = i;
}
}
FILE *out = fopen("bilute.out", "w");
fprintf(out, "%d %lld", nt, rez);
fclose(out);
return 0;
}