Pagini recente » Cod sursa (job #1213203) | Cod sursa (job #1448215) | Cod sursa (job #560153) | Cod sursa (job #358382) | Cod sursa (job #1012042)
#include <fstream>
using namespace std;
typedef struct
{
int start;
int end; // inclusive
int val;
} Sequence;
int main(int argc, char *argv[])
{
ifstream in("ssm.in");
Sequence max = {0, 0, 0}, endsHere = {0, 0, 0};
int n, x;
in >> n >> x;
max.val = endsHere.val = x;
for(int count = 2; count <= n; ++count)
{
in >> x;
if(endsHere.val >= 0) endsHere.val += x, ++endsHere.end;
else endsHere.val = x, endsHere.start = endsHere.end = count - 1;
if(endsHere.val > max.val) max = endsHere;
else if(endsHere.val == max.val && endsHere.start == max.start
&& endsHere.end - endsHere.start < max.end - max.start)
max.end = endsHere.end;
}
ofstream out("ssm.out");
out << max.val << ' ' << max.start + 1<< ' ' << max.end + 1<< endl;
return 0;
}