Cod sursa(job #328542)

Utilizator Magnuscont cu nume gresit sau fals Magnus Data 2 iulie 2009 13:40:55
Problema Bilute Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.52 kb
#include<iostream.h>  
#include<stdio.h>  
#define fi(i,a,b) for(i=a;i<=b;i++)  
FILE *f=fopen("bilute.in","r"),*g=fopen("bilute.out","w");  
long long s[30001],c[30001];  
int a[30001],b[30001];  
int main()  
{  
    int n,i,j=1;  
    fscanf(f,"%d",&n);  
    fi(i,1,n)  
    {fscanf(f,"%d %d",&a[i],&b[i]);c[i]=c[i-1]+a[i];if(i>1) s[1]+=(i-1)*a[i]+a[i]*b[i];}  
    fi(i,2,n)  
    {s[i]=s[i-1]+a[i-1]*b[i-1]-a[i]*b[i]+c[i-1]-c[n]+c[i-1];if(s[i]<s[j]) j=i;}  
    fprintf(g,"%d %lld",j,s[j]);  
    return 0;  
}