Cod sursa(job #871848)

Utilizator andreas_mihAndreas Mihaloianis andreas_mih Data 5 februarie 2013 13:22:26
Problema Subsecventa de suma maxima Scor 5
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 kb
#include<math.h>     // visane ! baietii te saluta (TEO)
#include<stdio.h>    // si da, am facut-o pe Teo baiat :))
using namespace std; // sa te vad acum :> !
FILE*in=fopen("ssm.in","r");  // hi, my nigga (hareza) cu hash mic
FILE*out=fopen("ssm.out","w");

int nr,v[6000001],sum[6000001],greatSum,indiceA=1,indiceB;
int main()
{
    fscanf(in,"%d",&nr);
    fscanf(in,"%d",&v[1]);
    greatSum=v[1];
    sum[1]=v[1];
    for(int i=2;i<=nr;++i)
       {
           fscanf(in,"%d",&v[i]);
           sum[i]=v[i];
           if(sum[i]<sum[i-1]+v[i])
               sum[i]=sum[i-1]+v[i];
           if(greatSum<sum[i])
           {
               indiceB=i;
               greatSum=sum[i];
           }
       }
    fprintf(out,"%d ",greatSum);
    int ceva=v[indiceB];
    int j=indiceB;
    while(ceva!=greatSum)
    {
        ceva+=v[j-1];
        j--;
    }
    while(v[j])
        --j;
    indiceA=j;
    fprintf(out,"%d %d",indiceA,indiceB);
fclose(in);
fclose(out);
}