Pagini recente » Cod sursa (job #1561269) | Cod sursa (job #1870838) | Cod sursa (job #702746) | Cod sursa (job #1610128) | Cod sursa (job #863353)
Cod sursa(job #863353)
#include<fstream>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
int n, x[6000000],s,m,start, finish,indice, check,k,best1, best2,suma1,suma2,finish1, finish2;
int main()
{
int i;
f>>n;
m=-2000000;
for(i=1; i<=n; i++)
f>>x[i];
for(i=1; i<=n; i++)
{
if( s+x[i]>x[i] )
s=s+x[i];
else
{
s=x[i];
start = i;
}
if(s>m)
{ indice=i;
m=s;
finish=i;
best1=0; best2=0; suma1=0; suma2=0; finish1=0; finish2=0;
}
else if( m == s)
{
if(best1==0)
{ finish1=i;
best1 = start; suma1=finish1-start;
}
else if(best2==0)
{ finish2=i;
best2=start; suma2=finish2-start;
}
}
}
if(best1>0&&best2>0)
{
if(best1==best2)
if(suma1<suma2)
g<<m<<" "<<best1<<" "<<finish1;
else
g<<m<<" "<<best2<<" "<<finish2;
else
if(best1<best2)
g<<m<<" "<<best1<<" "<<finish1;
else
g<<m<<" "<<best2<<" "<<finish2;
}
else
g<<m<<" "<<start<<" "<<finish;
}