Pagini recente » Cod sursa (job #2774156) | Cod sursa (job #2690311) | Cod sursa (job #976000) | Cod sursa (job #314457) | Cod sursa (job #2809291)
#include <bits/stdc++.h>
/* Se dă un şir S[] = (s1, s2, .., sN) de lungime N.
O subsecvenţă a şirului este de forma: (si, si+1, ..., sj) cu 1 ≤ i ≤ j ≤ N, iar suma subsecvenţei este si + si+1 + ... + sj.*/
/*Se cere să se determine subsecvenţa de sumă maximă.*/
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int s;
int a[6000001];
int main()
{
int n, maxim = 0, st = 0, dr = 1, l = 0, stmax = 0;
fin >> n;
for (int i = 1; i <= n; i++)
{
fin >> a[i];
s = s + a[i];
if (s < 0)
{
s = 0;
st = i;
}
else if (s > maxim)
{
maxim = s;
stmax = st;
dr = i;
}
}
fout << maxim << " " << stmax + 1 << " " << dr;
return 0;
}