#include <iostream> #include <limits.h> using namespace std; int dp[100] = {0}; int a[100] = {0}; int main() { int i = 0; while ((cin >> a[i++])); //dp[i]用来存储到i为止的升序序列的最大元素和 //i代表元素个数 dp[0] = a[0]; for (int j = 1; j < i; j++) { //求dp[j]的值 //int max = 0; int max = INT_MIN; for (int k = 0; k < j; k++) { if (a[k] < a[j]) { if (dp[k]>max) max = dp[k]; } } if (max == INT_MIN) dp[j] = a[j]; else dp[j] = max + a[j];  } int mm = dp[0]; for (int m = 1; m < i; m++) { if (dp[m] > mm) mm = dp[m]; } cout << mm << endl; system("pause"); return 0; }
点赞 评论

相关推荐

03-04 07:14
门头沟学院 C++
黑皮白袜臭脚体育生:老板:都给工作机会了还想要工资,哪来这么多好事
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务