Mai intai trebuie sa te autentifici.
Cod sursa(job #1578925)
| Utilizator | Data | 24 ianuarie 2016 13:40:22 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.82 kb |
#include <iostream>
#include <fstream>
using namespace std;
int n;
int main()
{
int i, s=0, beg, fin, smax=-2e9, P1, P2, nr;
ifstream g ("ssm.in");
ofstream h ("ssm.out");
g>>n;
g>>nr;
s=nr;
beg=fin=1;
if(s>smax)
{
smax=s;
P1=beg;
P2=fin;
}
for(i=2;i<=n;i++)
{
g>>nr;
if(s+nr>=nr)//dc am avut o suma pozitiva inainte
{
s+=nr;
fin=i;
}
else //am gasit un nr negativ mai mic decat suma precedenta
{
s=nr;
beg=fin=i;
}
if(s>smax)
{
smax=s;
P1=beg;
P2=fin;
}
}
h<<smax<<" "<<P1<<" "<<P2;
g.close();
h.close();
return 0;
}
