Cod sursa(job #254890)

Utilizator cosmin79Carabet Cosmin Andrei cosmin79 Data 7 februarie 2009 23:39:26
Problema Cuburi2 Scor 30
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <stdio.h>
#define N 250005
int n,m,v[N];
void citire()
{
	int i;
	scanf("%d%d",&n,&m);
	for (i=1; i<=n; i++)
		scanf("%d",&v[i]);
}
int modul(int x,int y)
{
	if (x>y)
		return x-y;
	return y-x;
}
int operatie(int x,int y,int k)
{
	int i,s=0;
	for (i=x; i<=y; i++)
	{
		s+=v[i]*modul(i,k);
	}
	return s;
}
int calcul(int x,int y)
{
	int i,pozmin,s=0,sum=0;
	for (i=x; i<=y; i++)
		s+=v[i];
	for (i=x; i<=y && sum<=s/2; i++)
	{
		sum+=v[i];
		pozmin=i;
	}
	printf("%d %d\n",pozmin,operatie(x,y,pozmin));
	return 0;
}
void rezolvare()
{
	int i,x,y;
	for (i=1; i<=m; i++)
	{
		scanf("%d%d",&x,&y);
		calcul(x,y);
	}
}
int main()
{
	freopen("cuburi2.in","r",stdin);
	freopen("cuburi2.out","w",stdout);
	citire();
	rezolvare();
	return 0;
}