Cod sursa(job #862643)

Utilizator superman_01Avramescu Cristian superman_01 Data 22 ianuarie 2013 20:24:56
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.97 kb
#include<fstream>
  
using namespace std;
  
ifstream f("ssm.in");
ofstream g("ssm.out");
  
long n,s[6000005];
  int start,finish,start1,finish1;
    int mini;
    int maxi=0,val=0;
    int smax=-1000000;
  
int main()
{
      
    int i;
    f>>n;
    int c;
    for(i=1;i<=n;i++)
    {
        f>>c;
    s[i]=s[i-1]+c;
    }
  mini=200000;
    for(i=1;i<=n;i++)
    {
        if(s[i]<mini)
            {
                mini=s[i];
                maxi=0;
                start1=i;
                val=0;
        }
        if(s[i]>maxi)
        {
            maxi=s[i];
			finish1=i;
        }
         
         
                val=s[finish1]-s[start1];
         
        if(val>smax)
         {
             smax=val;
			 start=start1;
			 finish=finish1;
        }
           
       
          
          
    }
    
 
 
    g<<val<<" ";
    g<<start+1<<" "<<finish;
      
    f.close();
    g.close();
    return 0;
}