Cod sursa(job #1577755)
Utilizator | Petruta George-Calin GeorgeCalin | Data | 23 ianuarie 2016 19:43:09 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 30 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.78 kb |
#include <stdio.h>
#include <climits>
using namespace std;
FILE *f,*g;
int v[6000002];
int main ()
{
f=fopen("ssm.in","r");
g=fopen("ssm.out","w");
int n,k,minim,max,i,poz,in,sf;
fscanf(f,"%d ",&n);
v[0]=0;
for (i=1; i<=n; i++)
{
fscanf(f,"%d",&poz);
v[i]=v[i-1]+poz;
}
max=INT_MIN;
sf=1;
in=1;
for (i=2; i<=n; i++)
{
k=INT_MAX;
for(int j=1;j<=i;j++)
{
if(v[j]<k)
{
k=v[j];
sf=j+1;
}
}
poz=v[i]-k;
if(poz>max)
{
max=poz;
in=i;
}
}
fprintf(g,"%d %d %d",max,sf,in);
fclose(f);
fclose(g);
return 0;
}