1044. Shopping in Mars (25)解题报告
2016-10-28 17:16
357 查看
#define _CRT_SECURE_NO_WARNINGS #include <cstdio> #include <cstdlib> #include <vector> #include <climits> #include <algorithm> using namespace std; struct solution { int begin, end; }; void find(vector<solution> &v); bool comp(solution s1, solution s2); int *arr, n, m; int main(void) { vector<solution> v; int i; scanf("%d %d", &n, &m); arr = new int ; for (i = 0; i < n; i++) { scanf("%d", arr + i); } find(v); sort(v.begin(), v.end(), comp); for (i = 0; i != v.size(); i++) { printf("%d-%d\n", v[i].begin, v[i].end); } free(arr); return 0; } void find(vector<solution> &v) { int i, j, min_cost = INT_MAX, tmp_cost; bool flag = true; for (i = 0; i < n && flag; i++) { tmp_cost = 0; flag = false; for (j = i; j < n && tmp_cost < m; j++) { tmp_cost += arr[j]; } if (tmp_cost >= m) { flag = true; } if (tmp_cost >= m && min_cost == tmp_cost) { solution s; s.begin = i + 1; s.end = j; v.push_back(s); } else if (tmp_cost >= m && min_cost > tmp_cost) { solution s; s.begin = i + 1; s.end = j; v.clear(); v.push_back(s); min_cost = tmp_cost; } } return; } bool comp(solution s1, solution s2) { return s1.begin < s2.begin; }
相关文章推荐
- 1056. Mice and Rice (25)解题报告
- 【解题报告】【浙大PAT】1051. Pop Sequence (25)
- leetcode解题报告(25):Reverse Words in a String III
- 1070. Mooncake (25)解题报告
- 1036. Boys vs Girls (25)解题报告
- 1048. Find Coins (25)解题报告
- 1078. Hashing (25)解题报告
- 9-25 解题报告
- 1105. Spiral Matrix (25)解题报告
- Integer Set Partition (25)解题报告
- 1062. Talent and Virtue (25)解题报告
- 1079. Total Sales of Supply Chain (25)解题报告
- 剑指offer解题报告(Java版)——二叉树中和为某一值的路径 25
- 1063. Set Similarity (25)解题报告
- 1071. Speech Patterns (25)解题报告
- 1074. Reversing Linked List (25)解题报告
- 1089. Insert or Merge (25)解题报告
- 1097. Deduplication on a Linked List (25)解题报告
- Family Property (25)解题报告
- PAT (Advanced Level) 1002. A+B for Polynomials (25) 解题报告