Pagini recente » Cod sursa (job #2952084) | Cod sursa (job #2691683) | Cod sursa (job #2060616) | Cod sursa (job #1637313) | Cod sursa (job #754795)
Cod sursa(job #754795)
#include <fstream>
using namespace std;
int main(void)
{
fstream fin("ssm.in",ios::in);
fstream fout("ssm.out",ios::out);
long N,a,sumstart,totalsum,bestsum,beststart,bestend,i,allneg,maxneg,maxnegpos;
fin >> N;
sumstart = 0;
totalsum = 0;
bestsum = -1;
beststart = -1;
bestend = -1;
allneg = 1;
maxneg = 0X80000000;
maxnegpos = -1;
for (i = 0;i < N;i += 1)
{
fin >> a;
if (a >= 0)
{
allneg = 0;
}
else
{
if (a > maxneg)
{
maxneg = a;
maxnegpos = i;
}
}
totalsum += a;
if (totalsum < 0)
{
totalsum = 0;
sumstart = i + 1;
}
if (totalsum > bestsum)
{
bestsum = totalsum;
beststart = sumstart;
bestend = i;
}
}
if (allneg == 0)
{
fout << bestsum << " " << (beststart + 1) << " " << (bestend + 1) << "\n";
}
else
{
fout << maxneg << " " << (maxnegpos + 1) << " " << (maxnegpos + 1) << "\n";
}
fin.close();
fout.close();
return 0;
}