Cod sursa(job #270108)

Utilizator dexter_dexMutascu Adrian - Dragos dexter_dex Data 3 martie 2009 19:18:26
Problema Subsecventa de suma maxima Scor 15
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<stdio.h>
int poz1,poz2,lung1,lung2=0,i,v[1000],n;
long s=-2000000000,smax=-2000000000;

long max(long a, long b)
{
if (a>b) {lung2++;
	  return a;
	  }
   else  {poz2=i;
	  lung2=1;
	  return b;
	 }
}

long maxim (long a,long b)
{
if (a>b) return a;
   else if (a==b) {if (lung2<lung1) {poz1=poz2;lung1=lung2;}
		   return a;}
       else
	{poz1=poz2;
	 lung1=lung2;
	 return b;
	}
}

int main()
{

FILE*f=fopen("ssm.in","r");
FILE*g=fopen("ssm.out","w");

fscanf(f,"%d",&n);
for (i=1;i<=n;i++)
    fscanf(f,"%d",&v[i]);

for(i=1;i<=n;i++)
   {s=max(s+v[i],v[i]);
    smax=maxim(smax,s);
   }


fprintf(g,"%ld %d %d",smax,poz1,poz1+lung1-1);
fclose(f);
fclose(g);
return 0;
}