Pagini recente » Cod sursa (job #54692) | Cod sursa (job #1227926) | Cod sursa (job #1593309) | Cod sursa (job #2680603) | Cod sursa (job #1912099)
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream f("ssm.in",ios::in);
int n;
int *array,*sum;
if(!f.is_open())
{
cout<<"Eroare la deschiderea fisierului de input!";
return -1;
}
f>>n;
array = (int *) malloc(n*sizeof(int));
sum = (int *) malloc(n*sizeof(int));
for(int i=0;i<n;i++)
{
f>>array[i];
}
sum[0]=array[0];
int max=sum[0];
for(int i=1;i<n;i++)
{
if(sum[i-1] + array[i] < array[i]) {
if(array[i]>max)
{
max = array[i];
}
sum[i] = array[i];
}
else
{
/**
* suntem in cazul in care obtinem o suma mai mare adunand si elementul curent
* la suma calculata anterior.
*/
sum[i]= sum[i-1] + array[i];
if(sum[i]>max) {
max = sum[i];
}
}
}
ofstream g("ssm.out",ios::out);
g << max;
f.close();
g.close();
return 0;
}