Pagini recente » Cod sursa (job #507908) | Cod sursa (job #865946) | Cod sursa (job #1084247) | Cod sursa (job #2565314) | Cod sursa (job #1524527)
#include <fstream>
using namespace std;
ifstream in("ssm.in");
ofstream out("ssm.out");
struct valoare{
int sum;
int inceput;
int sfarsit;
}y;
int n,x;
int main()
{
int i,max,min,sum=0,inceput,sfarsit,nr=1;
in>>n;
in>>x;
min=max=sum=x;
y.inceput=y.sfarsit=1;
y.sum=x;
inceput=sfarsit=1;
for(i=2;i<=n;i++)
{
in>>x;
sum+=x;
nr++;
if(sum < min && inceput<=sfarsit)
{
//out<<"Am intrat aici la "<<inceput<<" < "<<sfarsit<<"\n";
min=sum;
inceput=nr;
}
if(sum-min > max)
{
max=sum - min;
sfarsit=nr;
}
if(max > y.sum && inceput<=sfarsit)
{
//out<<"intru aici la inceput="<<inceput<<" sfarsit="<<sfarsit<<"\n";
y.sum=max;
y.inceput=inceput;
y.sfarsit=sfarsit;
}
//out<<"Suma="<<sum<<"\t Suma max="<<max<<"\t inceput="<<inceput<<"\t sfarsit="<<sfarsit<<"\n";
}
//inceput++;
//out<<max<<" "<<inceput+1<<" "<<sfarsit;
if(y.inceput==y.sfarsit) out<<y.sum<<" "<<y.inceput<<" "<<y.sfarsit;
else out<<y.sum<<" "<<y.inceput+1<<" "<<y.sfarsit;
in.close();
out.close();
return 0;
}