Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1774496
  • 博文数量: 198
  • 博客积分: 4088
  • 博客等级: 上校
  • 技术积分: 2391
  • 用 户 组: 普通用户
  • 注册时间: 2011-05-15 16:29
个人简介

游戏开发,系统架构; 博客迁移到:http://www.jianshu.com/u/3ac0504b3b8c

文章分类

全部博文(198)

文章存档

2017年(1)

2016年(12)

2015年(1)

2014年(3)

2013年(13)

2012年(18)

2011年(150)

分类: C/C++

2012-02-08 12:18:48

  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;

  4. int main()
  5. {
  6.     const int N = 1000;
  7.     char str[N];
  8.     int x;
  9.     while(cin.getline(str, N))
  10.     {
  11.         vector<int> arr;
  12.         istrstream iss(str, N);
  13.         while(iss >> x )
  14.         {
  15.             arr.push_back(x);
  16.         }

  17.         int sum = 0;
  18.         int max_sum = 0;
  19.         int start = 0, start_old = 0, end = 0;
  20.         for(int i = 0; i < arr.size(); ++i)
  21.         {
  22.             if(sum + arr[i] > 0)
  23.             {
  24.                 sum += arr[i];
  25.             }
  26.             else
  27.             {
  28.                 sum = 0;
  29.                 start_old = i + 1;
  30.             }

  31.             if(sum > max_sum)
  32.             {
  33.                 max_sum = sum;
  34.                 start = start_old;
  35.                 end = i;
  36.             }
  37.         }

  38.         cout << "max_sum: " << max_sum << endl;
  39.         for(int i = start; i <= end && end < arr.size(); ++i)
  40.         {
  41.             cout << arr[i] << " ";
  42.         }

  43.         cout << endl;
  44.     }

  45.     return 0;
  46. }

test:

1 3 5 -10 6 7 -2 8 -20 10 15 -2 5
max_sum: 28
10 15 -2 5

阅读(1258) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~