首页 > 其他 > 详细

HDU 1003 maxsum

时间:2015-06-27 22:36:32      阅读:284      评论:0      收藏:0      [点我收藏+]
#include<iostream>
#include<vector>
using namespace std;

typedef struct {
    int maxsum;
    int first;
    int end;
}resultArryType;


void OutResult(vector<int> vec, int num)
{
    resultArryType resultArry;
    int max = 0;
    int numCount = 0;
    int maxsum = 0, sumtemp = 0;
    resultArry.maxsum = -1001;
    resultArry.end = 0;
    resultArry.first = 0;
    numCount = vec.size();
    for (int i = 0; i < numCount; i++){
        sumtemp = 0;
        for (int j = i; j < numCount; j++){
            sumtemp += vec[j];

            if (sumtemp > resultArry.maxsum){
                resultArry.maxsum = sumtemp;
                resultArry.first = i + 1;;
                resultArry.end = j + 1;
            }

            if (resultArry.maxsum >sumtemp && sumtemp < 0)
                break;
        }
    }
    cout << "Case " << num << ":" << endl;
    cout << resultArry.maxsum << " " << resultArry.first << " " << resultArry.end << endl;
}


int main()
{
    int num, temp;
    int first;
    vector<int> vec;

    cin >> num;
    for (int i = 0; i < num; i++){
        first = 0;
        cin >> first;
        vec.clear();
        for (int j = 0; j < first; j++){
            cin >> temp;
            vec.push_back(temp);
        }
        OutResult(vec, i+1);
        if (i < num - 1)
            cout << endl;
    }
}

  

HDU 1003 maxsum

原文:http://www.cnblogs.com/mrethan/p/4604735.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!