文章

5

粉丝

221

获赞

12

访问

23.1k

头像
一个菜鸡写的题解
P1664 中南大学机试题
发布于2022年8月9日 18:06
阅读数 4.2k

#include<bits/stdc++.h>
using namespace std;

const int maxn = 1e5 + 5;
int a[maxn];
int dp[maxn];
int n;

int main(){
    while(~scanf("%d", &n)){
        bool flag = false;
        for(int i=0;i<n;i++){
            scanf("%d", &a[i]);
            if(a[i]>0)  flag = true;
        }
        if(!flag)   cout<<"0 0 0"<<endl;
        else{
            memset(dp,0,sizeof(dp));
            int ans = 0;
            int pos_st=0;
            int pos_en=0;
            dp[0] = a[0];
            int st = 0;
            int en = 0;
            for(int i=1;i<n;i++){
                if(dp[i-1]+a[i] > a[i]){
                    dp[i] = dp[i-1]+a[i];
                    en = i;
                }
                else{
                    dp[i] = a[i];
                    st = i;
                    en = i;
                }
                if(ans < dp[i]){
                    pos_st = st;
                    pos_en = en;...
登录查看完整内容


登录后发布评论

暂无评论,来抢沙发