Pagini recente » Cod sursa (job #2066969) | Profil M@2Te4i | Profil marcu.iulian13 | Cod sursa (job #6046) | Cod sursa (job #1120856)
#include<iostream>
#include<fstream>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int *v;
struct chestie
{
int s;
int f;
int l;
};
int main()
{
int n;
long int max = 0;
bool f = 1;
fin>>n;
v = new int[n]();
for(int i =0; i< n; i++)
{
fin>>v[i];
}
for(int i =0; i< n; i++) if(v[i]>0) f = 0;
int first = 1, last = 1, sum= 0;
if(f == 0)
{
chestie dyn[n];
for(int i = 0; i< n; i++)
{
sum+=v[i];
if(sum<=0)
{
first = i+2;
sum = 0;
}
last = i+2;
dyn[i].s = sum;
dyn[i].l = last;
dyn[i].f = first;
}
for(int i =0; i< n; i++)
{
if(dyn[i].s > max)max = dyn[i].s;
}
for(int i =0; i< n; i++)
{
if(dyn[i].s == max)
{
sum = dyn[i].s;
first = dyn[i].f;
last = dyn[i].l;
}
}
last--;
}
else
{
max = -1000000000;
for(int i =0; i< n; i++)
{
if(v[i] > max) {max = v[i];first = i+1;last = i+1;}
}
sum = max;
}
fout<<sum<<" "<<first<<" "<<last<<"\n";
return 0;
}