Cod sursa(job #1262552)
| Utilizator | Data | 13 noiembrie 2014 12:13:15 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 80 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.61 kb |
#include <iostream>
#include <fstream>
#define INF 2000000000
using namespace std;
ifstream fin ("ssm.in");
ofstream fout ("ssm.out");
int a[60000001],Min,Max,c,l,i,x,y;
int main()
{
fin >>x;
Max=-INF;
Min=INF;
for (i=1;i<=x;i++)
{
fin>>y;
a[i]=a[i-1]+y;
if (a[i]>Max)
{
Max=a[i];
l=i;
}
if (a[i]<Min)
{
Min=a[i];
c=i;
}
}
if (c<l&&Min<0)
fout <<Max-Min<<" "<<c+1<<" "<<l;
else
fout <<Max<<" "<<1<<" "<<l;
return 0;
}
