Pagini recente » Cod sursa (job #669879) | Cod sursa (job #1723445) | Cod sursa (job #3162942) | Cod sursa (job #593605) | Cod sursa (job #634261)
Cod sursa(job #634261)
#include<fstream>
const int Nmax = 6000005;
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int indice_inceput,indice_sfarsit;
int x,suma;
int lungime;
int n;
void Sol()
{
int i;
fin>>n;
indice_inceput = indice_sfarsit = 1;
fin>>x;
suma = x;
int suma_partiala = x;
int ind_inceput = 1;
for( i=2;i<=n;++i)
{
fin>>x;
if( suma_partiala + x >= x && x >0 )
{
suma_partiala = suma_partiala + x;
}
else
if( suma_partiala +x >= x && x < 0 )
{
if(suma_partiala > suma)
{
indice_inceput = ind_inceput;
indice_sfarsit = i-1;
suma = suma_partiala;
}
suma_partiala = suma_partiala + x;
}
else
if( suma_partiala + x >= x && x == 0 )
{
if(suma_partiala > suma)
{
indice_inceput = ind_inceput;
indice_sfarsit = i-1;
suma = suma_partiala;
}
}
else
{
if(suma_partiala > suma)
{
indice_inceput = ind_inceput;
indice_sfarsit = i-1;
suma = suma_partiala;
}
ind_inceput = i;
suma_partiala = x;
}
}
if(suma_partiala > suma)
{
indice_inceput = ind_inceput;
indice_sfarsit = i-1;
suma = suma_partiala;
}
fout<<suma<<" "<<indice_inceput<<" "<<indice_sfarsit<<"\n";
}
int main()
{
Sol();
fout.close();
fin.close();
return 0;
}