Cod sursa(job #850684)

Utilizator danutbodbodnariuc danut danutbod Data 8 ianuarie 2013 19:36:12
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.07 kb
////var I
//#include <fstream>
//#include<string.h>
//#define NMax 6000003
//using namespace std;
//ifstream f("ssm.in");
//ofstream g("ssm.out");
//long long n,i,j,x,semn,maxi,pmaxi,ss,sum,a[NMax];
//int main()
//{
//    f>>n;
//    for (i=1; i<=n; i++)f>>a[i];
//    maxi=-1000000000000LL;
//    for (i=1; i<=n; i++){
//       if(sum>=0)sum+=a[i];
//        else sum=a[i];
//       if(maxi<sum){maxi=sum;pmaxi=i;}
//    }
//    for(i=pmaxi; i>=1; i--){
//          ss+=a[i];
//          if(ss==maxi)break;
//    }
//    while(a[i-1]==0)i--;//pt. 0 0 100 10 se ia TOT
//    g<<maxi<<" "<<i<<" "<<pmaxi<<'\n';
//    return 0;
//}
//var II
#include<fstream>
using namespace std;//!!!!!!!!!!!!!!!!!!!!
ifstream f("ssm.in");
ofstream g("ssm.out");
long n,i,maxi,mini,x,sum,pi,pf,p;
int main()
{
    f>>n;
    maxi=-2000000000;mini=0;p=1;
    for(i=1;i<=n;i++)
    {
        f>>x;
        sum=sum+x;
        if(maxi<sum-mini){ maxi=sum-mini; pi=p; pf=i; }
        if(sum<mini){ mini=sum; p=i+1; }
    }
    g<<maxi<<" "<<pi<<" "<<pf;
    return 0;
}