Pagini recente » Cod sursa (job #980513) | Cod sursa (job #2494816) | Cod sursa (job #3278868) | Cod sursa (job #1827584) | Cod sursa (job #1605471)
#include <stdio.h>
#include <stdlib.h>
#define MAX 6000000
int X[MAX];
char *buffer;
void read ( int &a)
{
a ^= a;
bool semn = 0;
while ( *buffer < '0' || *buffer > '9')
if (*(buffer++) == '-')
semn = 1;
while (*buffer >= '0' && *buffer <= '9')
a = a * 10 + *(buffer++) - '0';
if (semn)
a *= -1;
}
int main(void)
{
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
fseek(stdin,0,SEEK_END);
int dimensiune = ftell(stdin);
buffer = (char *) (malloc(dimensiune));
rewind(stdin);
fread(buffer,1,dimensiune,stdin);
int N,maxim = -9999,i,minim = 9999,min_i=0,secv_sf,secv_in;
read(N);
for ( i = 1 ; i <= N; ++i)
read(X[i]);
for ( i = 1 ; i <= N; ++i)
{
X[i] += X[i-1];
if ( X[i] - minim >maxim)
{
maxim = X[i] - minim;
secv_sf = i;
secv_in = min_i+1;
}
if(minim > X[i])
{
minim = X[i];
min_i = i;
}
}
printf("%d %d %d\n",maxim,secv_in,secv_sf);
return 0;
}