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