Pagini recente » Cod sursa (job #2257368) | Cod sursa (job #1343910) | Cod sursa (job #2822663) | Cod sursa (job #2722154) | Cod sursa (job #1389389)
#include <fstream>
using namespace std;
FILE * fin=fopen("ssm.in","r");
ofstream fout("ssm.out");
struct secv
{
int s, in, sf;
};
int n, v[6000005];
secv maxEndingHere, maxSoFar;
int main()
{
int i;
maxSoFar.s = -999999999;
fscanf(fin,"%d",&n);
for (i=1;i<=n;i++)
fscanf(fin,"%d",&v[i]);
for (i=1;i<=n;i++)
{
if (maxEndingHere.s + v[i] > v[i])
{
maxEndingHere.s+=v[i];
maxEndingHere.sf++;
}
else
{
maxEndingHere.s = v[i];
maxEndingHere.in = maxEndingHere.sf = i;
}
if (maxEndingHere.s > maxSoFar.s)
maxSoFar = maxEndingHere;
}
fout << maxSoFar.s << ' ' << maxSoFar.in << ' ' << maxSoFar.sf << '\n';
return 0;
}