Pagini recente » Rating diaconescu denis (denisucu02) | Cod sursa (job #1408486) | Cod sursa (job #1521115) | Cod sursa (job #538707) | Cod sursa (job #3160403)
#include <bits/stdc++.h>
#include <unordered_map>
using namespace std;
#define ll long long
#define ull unsigned long long
#define nmax 6000006
#define MOD 1999999973
#define INF 9973
//#define fin cin
//#define fout cout
ifstream fin("ssm.in");
ofstream fout("ssm.out");
int n;
int a[nmax];
/**
1 2 3 4 5 6 7
5 -6 3 4 -2 3 -3
s = 8
smax= 8
st = 3
dr = 6
p = 3
**/
int main()
{
int i, st, dr, p;
ll s, smax;
fin >> n;
for (i = 1; i <= n; i++)
fin >> a[i];
s = smax = a[1]; st = dr = p = 1;
if (s < 0)
{
s = 0;
p = 2;
}
for (i = 2; i <= n; i++)
{
s += a[i];
if (s > smax)
{
st = p;
dr = i;
smax = s;
}
if (s < 0)
{
s = 0;
p = i + 1;
}
}
fout << smax << " " << st << " " << dr << "\n";
fin.close();
fout.close();
return 0;
}