Cod sursa(job #254444)

Utilizator lucian_chisLucian Chis lucian_chis Data 7 februarie 2009 12:10:14
Problema Cuburi2 Scor 5
Compilator cpp Status done
Runda Stelele Informaticii 2009, clasele 9-10, ziua 2 Marime 1.01 kb
#include <iostream.h>
#include <fstream.h>


int main()
{
	ifstream f("cuburi2.in");
	ofstream g("cuburi2.out");

	long h[100000],tm;
	int n,m,poz,i,j,x,y,min,k;

	f>>n>>m;
	for(i=1;i<=n;i++)
		f>>h[i];
	for(i=1;i<=m;i++)
		{
		f>>x>>y;
		if(y-x==1)
			{
			if(h[x]>h[y])
				g<<x<<" "<<h[y]<<"\n";
			else
				g<<y<<" "<<h[x]<<"\n";
			}
		else
			{
			min=32000;
			for(k=x;k<=y;k++)
				{
				if(k==x)
					{
					tm=0;
					for(j=k+1;j<=y;j++)
						tm=tm+h[j]*(j-k);
					if(tm<min)
						{
						min=tm;
						poz=k;
						}
					}
				else
					{
					if(k==y)
						{
						tm=0;
						for(j=x;j<y;j++)
							tm=tm+(k-j)*h[j];
						if(tm<min)
							{
							min=tm;
							poz=k;
							}
						}

					else
						{
						tm=0;
						for(j=x;j<=k-1;j++)
							tm=tm+(k-j)*h[j];
						for(j=k+1;j<=y;j++)
							tm=tm+h[j]*(j-k);
						if(tm<min)
							{
							min=tm;
							poz=k;
							}
						}
					}
				}
			g<<poz<<" "<<min<<"\n";
			}
		}
}