Pagini recente » Cod sursa (job #1146399) | Cod sursa (job #873881) | Cod sursa (job #280075) | Cod sursa (job #1387080) | Cod sursa (job #677197)
Cod sursa(job #677197)
#include<fstream>
using namespace std;
#define NMAX 6000010
int n;
int a[NMAX];
int ssm,pozissm,pozfssm;
void read()
{
int i;
ifstream fin("ssm.in");
fin>>n;
for (i=1; i<=n; ++i)
fin>>a[i];
fin.close();
}
void solve()
{
int i,best,pozibest,pozfbest;
best = ssm = a[1];
pozibest = pozfbest = pozissm = pozfssm = 1;
for (i=2; i<=n; ++i)
{
if (best + a[i] >= a[i])
{
best += a[i];
pozfbest++;
}else
{
best = a[i];
pozibest = i;
pozfbest = i;
}
if (best > ssm)
{
ssm = best;
pozissm = pozibest;
pozfssm = pozfbest;
}
}
}
void write()
{
ofstream fout("ssm.out");
fout<<ssm<<" "<<pozissm<<" "<<pozfssm<<'\n';
fout.close();
}
int main()
{
read();
solve();
write();
return 0;
}