Pagini recente » Cod sursa (job #616669) | Cod sursa (job #1076565) | Cod sursa (job #1389483) | Cod sursa (job #2550399) | Cod sursa (job #167200)
Cod sursa(job #167200)
#include <fstream>
using namespace std;
int C[30001], L[30001],dr[30001];
int abs(int i){ return i > 0 ? i : (-i);}
int main()
{unsigned long cst=0,n=0,b=0, cdr=0, lst=0, ldr=0, s=0, min=0;
ifstream fin("bilute.in");
ofstream fout("bilute.out");
int i, poz = 0;
fin>>n;
for (i = 1; i <= n; i++) fin>>C[i]>>L[i];
for (i = 2; i <= n; i ++)
{
ldr += C[i] * L[i];
cdr += C[i] * (i - 1);
}
for (i = n; i >= 1; i --) dr[i] = dr[i + 1] + C[i];
min = cdr + ldr; b = 1;
for (i = 2; i <= n; i ++)
{
lst += C[i - 1] * L[i - 1];
ldr -= C[i] * L[i];
s += C[i - 1];
cst += s;
cdr -= dr[i];
if (lst + cst + ldr + cdr < min)
{
min = lst + cst + ldr + cdr;
b = i;
}
}
fout<<b<<" "min;
return 0;
}