Pagini recente » Cod sursa (job #337887) | Cod sursa (job #1080656) | Cod sursa (job #1622849) | Cod sursa (job #1188417) | Cod sursa (job #1815484)
#include <iostream>
#include <fstream>
#define Nmax 6000005
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n,a[Nmax];// in a se retin sumele partiale de la 1 pana l i
void Citire ()
{int x;
fin>>n;
for(int i=1;i<=n;i++)
{fin>>x;
a[i]=a[i-1]+x;}
}
void Calculare_Ssm()
{
int i,minim=0,xbun,ybun,xmin,summax,maxi;
minim=a[1];
xbun=ybun=1;
xmin=1;
for (i=2;i<=n;i++)
{
if (a[i]<=minim){xmin=i;minim=a[i];}
maxi=a[i]-minim;// suma maxima ce se poate obtine din intervalul 1,i este S[i]-min(s[j]),j<=i
if (maxi>summax) {summax=maxi;xbun=xmin;ybun=i;}
}
fout<<summax<<" "<<xbun+1<<" "<<ybun;
}
int main()
{
Citire();
Calculare_Ssm();
return 0;
}