Pagini recente » Cod sursa (job #1285843) | Cod sursa (job #591361) | Cod sursa (job #13217) | Cod sursa (job #2132086) | Cod sursa (job #2137216)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("ssm.in");
ofstream fout("ssm.out");
struct tr{
int value, pozi, pozf;
}dp[6000005];
int n;
void Citire()
{
int x;
fin >> n;
fin >> x;
dp[1].value= x;
dp[1].pozi = 1;
dp[1].pozf = 1;
for(int i = 2; i <= n; i++)
{
fin >> x;
if(dp[i - 1].value + x > x)
{
dp[i].value = dp[i - 1].value + x;
dp[i].pozi = dp[i - 1].pozi;
dp[i].pozf = i;
}
else
{
dp[i].value = x;
dp[i].pozi = i;
dp[i].pozf = i;
}
}
int maxim = -1, poz = -1;
for(int i = 1; i <= n; i++)
{
if(maxim < dp[i].value)
{
maxim = dp[i].value;
poz = i;
}
cout << dp[i].value << " ";
}
fout << dp[poz].value << " " << dp[poz].pozi << " " << dp[poz].pozf << "\n";
}
int main()
{
Citire();
return 0;
}