Mai intai trebuie sa te autentifici.
Cod sursa(job #2024965)
| Utilizator | Data | 21 septembrie 2017 18:12:37 | |
|---|---|---|---|
| Problema | Bilute | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.7 kb |
#include <bits/stdc++.h>
#define MaxN 100005
#define INF 2140000000
using namespace std;
FILE *IN,*OUT;
int N,minpos;
long long T=0,C[MaxN],L[MaxN],Min=1<<62,F[MaxN],B[MaxN];
int main()
{
IN=fopen("bilute.in","r");
OUT=fopen("bilute.out","w");
fscanf(IN,"%d",&N);
for(int i=1;i<=N;i++)
{
fscanf(IN,"%d%d",&C[i],&L[i]);
T+=L[i]*C[i]+C[i]*i;
}
for(int i=1;i<=N;i++)
{
F[i]=F[i-1]+C[i];
B[N-i+1]=B[N-i+2]+C[N-i+1];
}
for(int i=1;i<=N;i++)
{
T-=B[i]-F[i-1];
if(Min>T-L[i]*C[i])
Min=T-L[i]*C[i],minpos=i;
}
fprintf(OUT,"%d %lld",minpos,Min);
return 0;
}
