Cod sursa(job #760681)

Utilizator Andrei1998Andrei Constantinescu Andrei1998 Data 22 iunie 2012 16:53:12
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <fstream>

using namespace std;

int main()
{
   //Deschiderea fisierelor de intrare
   ifstream fin("ssm.in");
   ofstream fout("ssm.out");
    
   //Declararea variabilelor 
   unsigned int cap=0,coada=0,cap_max=0,n=0;
   int sum=-1,max=-2120000000,x=0;
   
   //Citirea lungimii
   fin>>n;
   
   //Rezolvare in O(n)
   for(register unsigned int i=0;i<n;i++)
   {          
      fin>>x; 
      
      if(sum<0)
      {
         cap=i;
         sum=x;         
      }
      else
      { 
         sum+=x;
      }
         
      if(sum>max)
      {
         cap_max=cap;
         max=sum;
         coada=i;    
      }
   } 
   
   //Afisarea raspunsului
   fout<<max<<' '<<cap_max+1<<' '<<coada+1<<'\n';
   
   //Inchiderea fisierelor de intrare
   fin.close();
   fout.close();
   return 0;   
}