Pagini recente » Cod sursa (job #3242215) | Cod sursa (job #736247) | Cod sursa (job #93259) | Cod sursa (job #2180283) | Cod sursa (job #1575770)
#include <stdio.h>
#include <math.h>
#include <climits>
using namespace std;
FILE *f,*g;
int main()
{
f=fopen("ssm.in","r");
g=fopen("ssm.out","w");
int n;
fscanf(f,"%d",&n);
int nr=0;//in nr citesc cate un numar din fisier
int suma_optima = INT_MIN;// suma cea mai buna pe care pot sa o obtin pentru un subsir
int sum_int = 0;// suma intermediara
int i,li, lf, poz_int;//limita initiala, limita finala si pozitia intermediara
for(i=1;i<=n; i++)
{
fscanf(f,"%d",&nr);//citesc cate o valoare din fisier
if (sum_int < 0) // daca suma intermediara devine negativa suma intermediara devine nr
sum_int = nr, poz_int = i;//
else
sum_int += nr;
if (suma_optima < sum_int)
suma_optima = sum_int, li = poz_int, lf = i;
}
fprintf(g,"%d %d %d",suma_optima,li,lf);
fclose(f);
fclose(g);
return 0;
}