Pagini recente » Cod sursa (job #1232084) | Cod sursa (job #2558925) | Cod sursa (job #1320987) | Cod sursa (job #929442) | Cod sursa (job #2112089)
// C program to print largest contiguous array sum
#include<stdio.h>
#include<limits.h>
char buff[4096];
int pos= 4096;
char my_getch()
{
if(pos==4096)
{
fread(buff,1,4096,stdin);
pos=0;
}
return buff[pos++];
}
int nextNumber()
{
char c=my_getch();int sign=0;
while(c<'0' || c>'9')
{
if(c=='-')
sign=1;
c=my_getch();
}
int nr=0;
while(c>='0' && c<='9')
{nr=nr*10+c-'0';
c=my_getch();
}
if(sign)
nr*=-1;
return nr;
}
void maxSubArraySum( int size)
{
int max_so_far = INT_MIN, max_ending_here = 0,
start =0, end = 0, s=0, i;
for ( i=0; i< size; i++ )
{
max_ending_here += nextNumber();
if (max_so_far < max_ending_here)
{
max_so_far = max_ending_here;
start = s;
end = i;
}
if (max_ending_here < 0)
{
max_ending_here = 0;
s = i + 1;
}
}
freopen("ssm.out","w",stdout);
printf("%d %d %d" , max_so_far, start +1, end + 1);
}
/*Driver program to test maxSubArraySum*/
int main()
{
freopen("ssm.in","r",stdin);
int n;
scanf("%d",&n);
maxSubArraySum(n);
return 0;
}