Pagini recente » Cod sursa (job #2638971) | Cod sursa (job #3130130) | Cod sursa (job #2849346) | Cod sursa (job #1857468) | Cod sursa (job #1526696)
#include <iostream>
#include <fstream>
using namespace std;
const int INF = 2000000000;
const int NMax = 6000005;
int D[NMax], sMax, iMax, jMax, sum, minim, N;
bool poz;
void read()
{
ifstream f("ssm.in");
f >> N;
int i;
poz = false;
for(i = 1; i <= N; i ++)
{
f >> D[i];
if(D[i] >= 0)
{
poz = true;
}
}
f.close();
}
void ssm()
{
if(poz)
{
sum = 0;
minim = 0;
sMax = -INF;
for(int i = 1; i <= N; i ++)
{
sum = sum + D[i];
if(sum-minim > sMax)
{
sMax = sum-minim;
jMax = i;
}
if(sum < minim)
{
minim = sum;
iMax = i+1;
}
}
}
else
{
sMax = -INF;
for(int i = 1; i <= N; i ++)
{
if(D[i] > sMax)
{
sMax = D[i];
iMax = i;
jMax = i;
}
}
}
}
void print()
{
ofstream g("ssm.out");
g << sMax << " " << iMax << " " << jMax;
g.close();
}
int main()
{
read();
ssm();
print();
return 0;
}