Cod sursa(job #408346)

Utilizator Anonymous1010Chilivercu Cristian Anonymous1010 Data 2 martie 2010 23:17:11
Problema Operatii Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.95 kb
#include<stdio.h>

int min,n,i,j,v[1002][2],a[1002][2];

void secv();

int main()
{
	freopen("minim.in","r",stdin);
	freopen("minim.out","w",stdout);
	
	scanf("%d",&n);
	
	for(i=1;i<=n;i++)
	{
		scanf("%d",&v[i][0]);
		v[i][1]=i;
	}
	
	secv();
	
	return 0;
}

void secv()
{
	while(n)
	{
		min=12000;
		
		for(i=1;i<=n;i++)
		{
			if(v[i][0]+a[i-1][0]<v[i][0])
			{
				a[i][0]=v[i][0]+a[i-1][0];
				a[i][1]=a[i-1][1];
				if(min>a[i][0])
				{
					min=a[i][0];
					j=i;
				}
				
				if(min==a[i][0]&&j-a[j][1]>i-a[i][1])
					j=i;
			}
			else
			{
				a[i][0]=v[i][0];
				a[i][1]=i;
				if(min>a[i][0])
				{
					min=a[i][0];
					j=i;
				}
				
				if(min==a[i][0]&&j-a[j][1]>i-a[i][1])
					j=i;
			}
		}
		
		printf("%d %d %d\n",a[j][0],v[a[j][1]][1],v[j][1]);
		
		for(i=j+1;i<=n;i++)
		{
			v[i-j-1+a[j][1]][0]=v[i][0];
			v[i-j-1+a[j][1]][1]=v[i][1];
		}
			
		
		n-=(j+1-a[j][1]);
	}
}