Pagini recente » Cod sursa (job #2927573) | Cod sursa (job #1880034) | Cod sursa (job #1268346) | Cod sursa (job #2982461) | Cod sursa (job #1971620)
#include <iostream>
#include <fstream>
using namespace std;
#define in "ssm.in"
#define out "ssm.out"
#define N 6000003
ifstream f(in);
ofstream g(out);
long a[N], n, i, j, best=0, BEST=0, ind_BEST=0;
//void afisare_secventa(int I, int Sum)
//{
// if(I>=1 && Sum!=0)
// {
// afisare_secventa(I-1,Sum-a[I]);
// g<<a[I]<<' ';
// }
//}
void afisare_indici(int I, int Sum)
{
if(I>=1&&Sum-a[I]!=0)
afisare_indici(I-1,Sum-a[I]);
else if(Sum-a[I]==0)
g<<I<<' ';
}
int main ()
{
f>>n;
for(i=1; i<=n; i++)
{
f>>a[i];
if(best+a[i]>a[i]) //a[i-1]=0
best+=a[i];
else
best=a[i];
if(best>BEST)
ind_BEST=i, BEST=best;
//nu afiseaza cea mai scurta in caz de egalitate
}
//afisare_secventa(ind_BEST,BEST);
g<<BEST<<' ';
afisare_indici(ind_BEST,BEST);
g<<ind_BEST;
g<<'\n';
f.close();
g.close();
return 0;
}