Pagini recente » Cod sursa (job #122584) | Cod sursa (job #395909) | Cod sursa (job #1348664) | Cod sursa (job #2122992) | Cod sursa (job #1640931)
#include <fstream>
#include <stdlib.h>
using namespace std;
ifstream f("ssm.in");
ofstream g("ssm.out");
void citire(int n, int *a)
{
for(int i = 1; i <= n; i++)
{
f>>a[i];
}
}
int main()
{
int n,smax,pi;
int *a,*dp;
f>>n;
a = (int*)malloc(sizeof(int) * (n + 1));
dp = (int*)malloc(sizeof(int) * (n + 1));
citire(n,a);
smax=a[n];
dp[n]=a[n];
pi=n;
for(int i = n-1; i >= 1; i--)
{
if(dp[i+1]+a[i] > a[i])
{
dp[i]=dp[i+1]+a[i];
}
else
{
dp[i] = a[i];
}
if(smax < dp[i])
{
smax=dp[i];
pi=i;
}
}
g<<smax<<" "<<pi;
int ok = 0,s=0;
for(int i = pi; i <=n && ok == 0; i++)
{
s+=a[i];
if(s==smax)
{
g<<" "<<i;
ok = 1;
}
}
f.close();
g.close();
return 0;
}