Pagini recente » Cod sursa (job #1834942) | Cod sursa (job #1606524) | Cod sursa (job #2397424) | Cod sursa (job #2539956) | Cod sursa (job #822548)
Cod sursa(job #822548)
#include <fstream>
using namespace std;
ifstream is("date.in");
ofstream os("date.out");
const int maxn=6000001;
int a[maxn],sp[maxn],n,s,maxx=-0x3f3f3f,im,jm;
int main()
{
is>>n;
sp[0]=0;
for(int i=1;i<=n;i++)
{
is>>a[i];
sp[i]=sp[i-1]+a[i];
}
/* //varianta npatrat
for(int i=1;i<n;i++)
for(int j=i;j<=n;j++)
if(sp[j]-sp[i-1]>maxx)
{
maxx=sp[j]-sp[i-1];
im=i; jm=j;
}
*/
//varianta liniara O(n)
for(int i=1;i<=n;i++)
if(sp[i]>maxx)
{
maxx=sp[i];
jm=i;
}
im=jm;
while(!(sp[im]<0 && sp[im-1]>=0) && im>0) im--;
if(im>0) im++;
else if(sp[1]<0) im=im+2;
else im++;
for(int k=im;k<=jm;k++) os<<a[k]<<" ";
is.close();
os.close();
return 0;
}