Pagini recente » Cod sursa (job #760880) | Cod sursa (job #1279581) | Cod sursa (job #1593731) | Borderou de evaluare (job #1036235) | Cod sursa (job #1567124)
#include <fstream>
#include <cmath>
using namespace std;
ifstream f("secv2.in");
ofstream g("secv2.out");
int N,v[100],k,Dp[100],a[100][100],prim,ultim,Smax;
void citire()
{
f>>N;
f>>k;
for(int i=1;i<=N;i++)
f>>v[i];
}
void rezolvare()
{
Dp[0]=0;
Dp[1]=v[1];
for(int i=1;i<=N;i++)
for(int j=1;j<=N;j++)
a[i][j]=0;
int l=1;
a[l][1]=1;
for(int i=2;i<=N;i++)
{
if(Dp[i-1]>=0)
{
Dp[i]=Dp[i-1]+v[i];
l++;
for(int j=1;j<i;j++)
a[l][j]=a[l-1][j];
a[l][i]=1;
}
else
{
Dp[i]=v[i];
l++;
for(int j=1;j<i;j++)
a[l][j]=0;
a[l][i]=1;
}
}
}
void maxim()
{
Smax=Dp[0];
for(int i=1;i<=N;i++)
Smax=max(Smax,Dp[i]);
for(int i=1;i<=N;i++)
if(Smax==Dp[i])
{
for(int j=1;j<=N;j++)
if(a[i][j]==1)
prim==j;
for(int j=N;j>=1;j--)
ultim=j;
}
}
void afisare()
{
g<<prim<<" "<<ultim<<" "<<Smax;
}
int main()
{
citire();
rezolvare();
maxim();
afisare();
return 0;
}