Cod sursa(job #1360104)

Utilizator lorelei27LORENA GHEORGHE lorelei27 Data 25 februarie 2015 11:44:36
Problema Subsecventa de suma maxima Scor 35
Compilator cpp Status done
Runda Arhiva educationala Marime 0.89 kb
#include <fstream>
using namespace std;

int main()
{int sum[259990],a[259990], min,i,bestSum,N,p2,j,p1;
ifstream f("ssm.in");
ofstream g("ssm.out");
f>>N;f>>a[0];bestSum=a[0];
for(i=1;i<N;i++){f>>a[i];if(a[i]<bestSum)bestSum=a[i];}
sum[0] = 0;
for (i = 1; i <N; i++) sum[i] = a[i] + sum[i-1];
min = sum[0];
for (i = 1; i < N; i++)
    { p1= sum[i] - min;
      if (min > sum[i]) min = sum[i];
      if (bestSum < p1)
          bestSum = p1;
    }
    p1=p2=3000000;
 for (i = 0; i < N-1; i++)
        for (j = i+1; j < N; j++)
          if(sum[j]-sum[i-1]==bestSum)
            if(p1>i+1)
              {p1=i+1;p2=j+1;break;}
                 else if(p1==i+1)
                    if(p2<j+1)
                      {p1=i+1;p2=j+1;break;}
                       else if(j-1+1<p2-p1+1)
                         {p1=i+1;p2=j+1;break;}
g<<bestSum<<" "<<p1<<" "<<p2;
    return 0;
}