码迷,mamicode.com
首页 > 其他好文 > 详细

[51nod1065]最小正子段和

时间:2017-11-04 11:13:26      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:turn   namespace   color   nbsp   ons   long   51nod   its   include   

 

 

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[50002];
struct node{
    ll sum,idx;
}nn[50002];
const ll inf=1ll<<61;
bool cmp(const node &a,const node &b){
    return a.sum<b.sum||(a.sum==b.sum&&a.idx<b.idx);
}
int main(){
    ll n,ans=inf;
    cin>>n;
    for(int i=1;i<=n;i++) cin>>a[i],nn[i].sum=nn[i-1].sum+a[i],nn[i].idx=i;
    sort(nn,nn+n+1,cmp);
    for(int i=1;i<=n;i++){
        if(nn[i].sum>0){
            ans=min(ans,nn[i].sum);
        }
        if(nn[i].sum>nn[i-1].sum&&nn[i-1].idx<nn[i].idx){
            ans=min(ans,nn[i].sum-nn[i-1].sum);
        }
    }
    cout<<ans<<"\n";
    return 0;
}

 

[51nod1065]最小正子段和

标签:turn   namespace   color   nbsp   ons   long   51nod   its   include   

原文地址:http://www.cnblogs.com/elpsycongroo/p/7782120.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!