Pagini recente » Cod sursa (job #2631312) | Cod sursa (job #2503624) | Cod sursa (job #3166874) | Cod sursa (job #1605154) | Cod sursa (job #1126942)
#include<stdio.h>
#include<vector>
#include<set>
using namespace std;
vector <int> v;
vector <int> Best;
int N;
int Max(int a,int b)
{
if(a>b)
return a;
else
return b;
}
void vkeres(int max,int i)
{
while(max-v[i]!=0 && i>=0)
{
max-=v[i];
i--;
}
printf("%d ",i+1);
}
int keres()
{
int i,imax=0,max=Best[0];
for(i=1;i<N;i++)
if(Best[i]>max)
{
max=Best[i];
imax=i;
}
printf("%d ",max);
vkeres(max,imax);
printf("%d",imax+1);
}
void megold()
{
int i;
Best.push_back(v[0]);
for(i=1;i<N;i++)
{
Best.push_back(Max(Best[i-1]+v[i],v[i]));
}
keres();
}
int main()
{
freopen("ssm.in","r",stdin);
freopen("ssm.out","w",stdout);
scanf("%d",&N);
int x;
for(int i=0;i<N;i++)
{
scanf("%d",&x);
v.push_back(x);
}
megold();
return 0;
}