Pagini recente » Cod sursa (job #3037458) | Cod sursa (job #279666) | Cod sursa (job #2202505) | Cod sursa (job #2208873) | Cod sursa (job #3209465)
#include <bits/stdc++.h>
#define NMAX 6000000
int dp[NMAX + 1];
int main()
{
int n, start = 0, end = 0, sum = 0, len = INT32_MAX;
std::ifstream fin("ssm.in");
dp[0] = 0;
for (int i = 1; i <= n; ++i) {
fin >> dp[i];
dp[i] += dp[i - 1];
}
fin.close();
for (int l, r, i = 1; i < n; ++i) {
l = r = i;
while (dp[r + 1] > dp[r])
++r;
if ((r > l)
&& ((dp[r] - dp[l - 1] > sum) || ((dp[r] - dp[l - 1] == sum) && (r - l + 1 < len)))) {
sum = dp[r] - dp[l - 1];
len = r - l + 1;
start = l;
end = r;
}
i = r;
}
std::ofstream fout("ssm.out");
fout << sum << start + 1 << end + 1;
fout.close();
}