Cod sursa(job #1889717)

Utilizator adriashkin.07alehandru69 adriashkin.07 Data 22 februarie 2017 20:57:33
Problema Subsecventa de suma maxima Scor 85
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int n,x,beg,en;
 vector < int > v;
ll s,s1;
 
int main()
{
 	ifstream cin("ssm.in");
    ofstream cout("ssm.out");
     
    cin>>n;
    cin>>x;
    v.push_back(x);
    s=x;
    s1=x;
    beg=1;
    en=1;
    for(int i=2;i<=n;i++)
     {
        cin>>x;
        v.push_back(x);
        if(x>=0&&s1<0) {
         beg=i;
         s=x;
         s1=x;
         en=i;
         continue; }
        s1+=x;
        if(s1>s) {
        en=i;
        s=s1;
         }
     }
     ll mx = *max_element(v.begin(), v.end());
     if (mx < 0)
     {
     	for (int i = 0; i < v.size(); i++)
     		if (v[i] == mx) return cout << mx << " " << i << " " << i, 0;
	 }
    cout<<s<<" "<<beg<<" "<<en;
return 0;
}