Cod sursa(job #1721634)
| Utilizator | Data | 26 iunie 2016 08:50:37 | |
|---|---|---|---|
| Problema | Subsecventa de suma maxima | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.74 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream si("ssm.in");
ofstream so("ssm.out");
int main()
{
int n;
si>>n;
int i;
int a;
si>>a;
int sum=a;
int maxx=0;
int maxe=a;
int in=0;
int poz,sin,sout;
for(i=1;i<n;++i)
{
if(sum<0)
{
sum=0;
in=i;
}
si>>a;
sum+=a;
if(maxx<sum)
{
maxx=sum;
sin=in;
sout=i;
}
if(maxe<a)
{
maxe=a;
poz=i;
}
}
if(maxx==0)
so<<maxe<<' '<<poz+1<<' '<<poz+1<<'\n';
else
so<<maxx<<' '<<sin+1<<' '<<sout+1<<'\n';
return 0;
}
