Cod sursa(job #1567124)

Utilizator AndreiMohutMohut Andrei AndreiMohut Data 12 ianuarie 2016 22:14:16
Problema Secventa 2 Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.07 kb
#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;
}