Cod sursa(job #1283994)

Utilizator ClaubiaDudau Claudia Maria Claubia Data 6 decembrie 2014 10:07:18
Problema Subsecventa de suma maxima Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.99 kb
#include<cstdio>
using namespace std;
int main(){
    freopen("ssm.in","r",stdin);
    freopen("ssm.out","w",stdout);
    int n,s=0,max,p1,p2,a,b,x,k1,k2,t,c;
    scanf("%d",&n);
    scanf("%d",&x);
    s=s+x;
    a=1;
    b=1;
    max=s;
    for(c=2;c<=n;c++){
        scanf("%d",&x);
        t=s+x;
        if(t>=x){
            s=s+x;
            b=c;
            }
        else{
            s=x;
            a=c;
            b=c;
            }
        if(s>max){
            max=s;
            p1=a;
            p2=b;
            }
        if(max==s){
            if(p1>a){
                max=s;
                p1=a;
                p2=b;
                }
            if(p1==a){
                k1=p2-p1+1;
                k2=a-b+1;
                if(k1>k2){
                    max=s;
                    p1=a;
                    p2=b;
                    }
                }
            }
        }
    printf("%d %d %d",max,p1,p2);
    return 0;
    }