Cod sursa(job #1197448)

Utilizator badea_adi1999Badea Adrian Catalin badea_adi1999 Data 12 iunie 2014 00:09:57
Problema Subsecventa de suma maxima Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <cstdio>
#define maxim 6000005
using namespace std;
FILE *f=fopen("ssm.in","r");
FILE *g=fopen("ssm.out","w");
int n,m,p,q,sum[maxim],inc[maxim];


void term(int i)
{m=sum[i];
p=inc[i];
q=i;


}


int main()
{int i,x;
fscanf(f,"%d",&n);
for (i=1;i<=n;i++) {fscanf(f,"%d",&x);
                    if (sum[i-1]>0) {sum[i]=sum[i-1]+x;
                                     inc[i]=inc[i-1];
                                     }
                               else {sum[i]=x;
                                     inc[i]=i;
                                     }
                    }
for (i=1;i<=n;i++) if (sum[i]>m) term(i);
                        else if (sum[i]==m&&inc[i]<p) term(i);
                                else if (sum[i]==m&&inc[i]==p&&i<q) term(i);
fprintf(g,"%d %d %d\n",m,p,q);
return 0;
}