Pagini recente » Cod sursa (job #1514313) | Cod sursa (job #1741376) | Cod sursa (job #1764130) | Cod sursa (job #1969627) | Cod sursa (job #458246)
Cod sursa(job #458246)
#include <iostream>
#include <fstream>
using namespace std;
void maxSubarraySum(long * array, unsigned long n, unsigned long& start, unsigned long& end, long& maxSum)
{
long currentSum = 0;
maxSum = 0;
start = 0;
end = -1;
for(unsigned long i = 0; i < n; i++)
{
if(currentSum < 0)
start = i;
currentSum = std::max(currentSum + array[i], array[i]);
if(currentSum > maxSum)
{
maxSum = currentSum;
end = i;
}
}
}
int main()
{
const char * inFile = "ssm.in";
const char * outFile = "ssm.out";
ifstream fin(inFile);
ofstream fout(outFile);
unsigned long n;
fin >> n;
long * a = new long[n];
for(unsigned long i = 0; i < n; i++)
{
fin >> a[i];
}
long sum;
unsigned long i, j;
maxSubarraySum(a, n, i, j, sum);
fout << sum << " " << i + 1 << " " << j + 1;
delete [] a;
fout.close();
fin.close();
return 0;
}