Cod sursa(job #254983)

Utilizator albuaAlbu Alexandru albua Data 8 februarie 2009 12:46:34
Problema Cuburi2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include <stdio.h>
#include <values.h>
#define DMax 250009

long v[DMax],n,m,i,a,b,mij,rez,front,back;
long long s[DMax];
int main()
{
	freopen("cuburi2.in","r",stdin);
	freopen("cuburi2.out","w",stdout);
	scanf("%ld %ld\n",&n,&m);
	for(i=1;i<=n;i++)scanf("%ld",&v[i]);
	for(i=1;i<=n;i++)
		s[i]=s[i-1]+v[i];
	for(i=1;i<=m;i++)
		{
			scanf("%ld %ld\n",&a,&b);
			front=a;
			back=b;
			rez=a;
			while(front<=back)
				{
					mij=(front+back)/2;
					if(s[mij-1]-s[a-1] < s[b]-s[mij-1])
						{
							rez=mij;
							front=mij+1;
						}
					else back=mij-1;
				}
			printf("%ld\n",rez);
		}
  return 0;
}