Cod sursa(job #1378547)
Utilizator | Bologa Dragos BologaDragos | Data | 6 martie 2015 12:50:42 |
---|---|---|---|
Problema | Subsecventa de suma maxima | Scor | 85 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.67 kb |
#include <fstream>
#define INF 0x3f3f3f3f
using namespace std;
ifstream f("ssm.in") ;
ofstream g("ssm.out") ;
long long sumacur=0,maxim,istart,icurent,n ;
int v[6000006] ;
int main()
{
int i ;
f>>n ;
maxim=-INF ;
for(i=1;i<=n;i++)
{
f>>v[i] ;
if(sumacur+v[i]>maxim)
maxim=sumacur+v[i] ;
if(sumacur+v[i]<0)
{
sumacur=0 ;
istart=i+1 ;
}
else
sumacur=sumacur+v[i] ;
}
g<<maxim<<" "<<istart<<" " ;
while(maxim)
{
maxim-=v[istart] ;
istart++ ;
}
g<<istart-1 ;
return 0;
}