Cod sursa(job #850303)

Utilizator danutbodbodnariuc danut danutbod Data 8 ianuarie 2013 12:12:03
Problema Subsecventa de suma maxima Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 1.05 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()
{//modif
    f>>n;
    f>>x;
    maxi=x;mini=x;
    for(i=2;i<=n;i++)
    {
        f>>x;
        sum=sum+x;
        if(maxi<sum-mini){ maxi=sum-mini; pi=p+1; pf=i; }
        if(sum<mini){ mini=sum; p=i; }
    }
    g<<maxi<<" "<<pi<<" "<<pf;
    return 0;
}