Pagini recente » Cod sursa (job #1300818) | Cod sursa (job #2928776) | Cod sursa (job #1075213) | Cod sursa (job #3291612) | Cod sursa (job #1730916)
#include <iostream>
#include <fstream>
using namespace std;
const int NMAX = 6000000;
void doSum();
void writeData();
int n;
int x;
int currentbeg = 1;
int currentend = 1;
int beg = 1;
int end = 1;
int sum;
int bestsum;
int main()
{
doSum();
writeData();
return 0;
}
void doSum()
{
ifstream inFile ("ssm.in");
inFile >> n;
inFile >> sum;
bestsum = sum;
for(int i=2; i<=n; i++)
{
inFile >> x;
if(sum < 0)
{
sum = x;
currentbeg = i;
currentend = i;
}
else
{
sum += x;
currentend++;
}
if(sum > bestsum)
{
if(sum == bestsum)
{
if(currentbeg < beg)
{
bestsum = sum;
beg = currentbeg;
end = currentend;
}
if(currentbeg == beg && end-beg > currentbeg-currentend)
{
bestsum = sum;
beg = currentbeg;
end = currentend;
}
}
bestsum = sum;
beg = currentbeg;
end = currentend;
}
}
inFile.close();
}
void writeData( )
{
ofstream outFile ("ssm.out");
outFile << bestsum << " " << beg << " " << end;
outFile.close();
}