Pagini recente » Rating Ana Liliac (ana.liliac) | Cod sursa (job #2564653) | Cod sursa (job #1652867) | Cod sursa (job #1509375) | Cod sursa (job #2649884)
#include <fstream>
#include <queue>
using namespace std;
ifstream in("ssm.in");
ofstream g("ssm.out");
int a[6000100];
#define dim 8192
char ax[dim];
int pz;
inline void cit(int &x)
{
x = 0;
int ms = 1;
while(ax[pz] < '0' || ax[pz] > '9')
{
if(ax[pz] == '-') ms = -1;
if(++pz == dim) in.read(ax,dim),pz = 0;
}
while(ax[pz] >= '0' && ax[pz] <= '9')
{
x = x * 10 + ax[pz] - '0';
if(++pz == dim) in.read(ax,dim),pz = 0;
}
x= x*ms;
}
int main()
{
int n;
cit(n);
int mini = 0;
int poz_min = 0;
a[0] = 0;
cit(a[1]);
int inc = 1;
int sf = 1;
int sum_max = a[1];
if(a[1] < mini)
{
mini = a[1];
poz_min = 1;
}
for(int i = 2; i<=n; ++i)
{
cit(a[i]);
a[i] += a[i-1];
int cand_max = a[i] - mini;
if(cand_max > sum_max)
{
sum_max = cand_max;
inc = poz_min+1;
sf = i;
}
if(a[i] < mini)
{
mini = a[i];
poz_min = i;
}
}
g<<sum_max<<" "<<inc<<" "<<sf<<"\n";
return 0;
}