Pagini recente » Cod sursa (job #2157368) | Cod sursa (job #2198369) | Cod sursa (job #1701790) | Cod sursa (job #468649) | Cod sursa (job #526669)
Cod sursa(job #526669)
#include <algorithm>
using namespace std;
#define INF 0x3f3f3f3f
#define LIM 10005
int n,sum_bst,sum_cur,sum_min,ind_min,ind_st_bst,ind_dr_bst;
int pozitie=LIM-1;
char buff[LIM];
inline void cit (int &nr)
{
char semn;
for (; !isdigit (buff[pozitie]); )
{
semn=buff[pozitie];
if (++pozitie==LIM)
{
fread (buff,1,LIM,stdin);
pozitie=0;
}
}
for (nr=0; isdigit (buff[pozitie]); )
{
nr=nr*10+buff[pozitie]-'0';
if (++pozitie==LIM)
{
fread (buff,1,LIM,stdin);
pozitie=0;
}
}
if (semn=='-')
nr=-nr;
}
void read_solve ()
{
int i,x;
cit (n);
sum_bst=-INF;
for (i=1; i<=n; ++i)
{
cit (x);
sum_cur+=x;
if (sum_cur-sum_min>sum_bst)
{
sum_bst=sum_cur-sum_min;
ind_st_bst=ind_min;
ind_dr_bst=i;
}
if (sum_cur<sum_min)
{
sum_min=sum_cur;
ind_min=i;
}
}
printf ("%d %d %d",sum_bst,ind_st_bst+1,ind_dr_bst);
}
int main ()
{
freopen ("ssm.in","r",stdin);
freopen ("ssm.out","w",stdout);
read_solve ();
return 0;
}