Pagini recente » Cod sursa (job #1783813) | Istoria paginii preoni-2007/runda-finala/poze/wii-play | Cod sursa (job #2450725) | Cod sursa (job #2646291) | Cod sursa (job #1670247)
#include <iostream>
#include <fstream>
#include <algorithm>
#define DIM 300000
using namespace std;
ifstream in("ssm.in");
ofstream out("ssm.out");
int sum;
int best,best_left,best_right;
int n;
int x;
char buff[DIM];
int poz = 0;
void Read(int &a)
{
bool mns = false;
while(!isdigit(buff[poz]))
{
if(buff[poz]=='-')
mns = true;
if(++poz == DIM)
in.read(buff,DIM),poz = 0;
}
a = 0;
while(isdigit(buff[poz]))
{
a = a*10 + buff[poz]-'0';
if(++poz == DIM)
in.read(buff,DIM),poz = 0;
}
if(mns)
a = -a;
}
int main()
{
int left,right;
Read(n);
Read(x);
sum = x;
best = sum;
left = 1;
right = 1;
best_left = 1;
best_right = 1;
for(int i=2;i<=n;i++)
{
Read(x);
if(sum + x < x)
{
if(best < sum)
{
best = sum;
best_left = left;
best_right = right;
}
sum = x;
left = i;
right = i;
}
else
{
sum+=x;
right=i;
}
if(best < sum)
{
best = sum;
best_left = left;
best_right = right;
}
}
in.close();
out<<best<<" "<<best_left<<" "<<best_right<<"\n";
out.close();
return 0;
}