PAT 1044. Shopping in Mars (25)
2015-03-11 20:33
453 查看
#include <stdio.h> #include <vector> using namespace std; #define MAX 100008 struct Range{ int i; int j; Range(int ii,int jj):i(ii),j(jj){}; }; int n,m; int arr[MAX];//arr[i]存放1-i的部分和,下标1开始有效 vector<Range> vec; int main(){ freopen("/Users/pantingting/Documents/code/data/input", "r", stdin); scanf("%d%d",&n,&m); arr[0]=0; for (int i=1; i<=n; i++) { int temp; scanf("%d",&temp); arr[i]=arr[i-1]+temp; } int i=0,j=1,min=123123123; while (j<=n&&i<=j) { int sum=arr[j]-arr[i]; if (sum>=m) { Range newR(i+1,j); if (sum<min) { min=sum; vec.clear(); vec.push_back(newR); } else if (sum==min) { vec.push_back(newR); } i++;//sum>=m的时候,这时候如果i不向后移动的话,j向后移动只会使得结果更大 }else{//sum<m j++; } } for (int i=0; i<vec.size(); i++) { printf("%d-%d\n",vec[i].i,vec[i].j); } }
相关文章推荐
- PAT(A) - 1044. Shopping in Mars (25)
- PAT (Advanced) 1044. Shopping in Mars (25)
- PAT 1044. Shopping in Mars (25)
- PAT (Advanced Level) Practise 1044 Shopping in Mars (25)
- PAT 1044 Shopping in Mars(25)
- 【C++】PAT(advanced level)1044. Shopping in Mars (25)
- 1044. Shopping in Mars (25)-PAT
- PAT 1044. Shopping in Mars (25)
- PAT 1044. Shopping in Mars (25)
- PAT 1044. Shopping in Mars (25)
- PAT 1044. Shopping in Mars (25)
- 1044. Shopping in Mars (25)-PAT甲级真题(二分查找)
- PAT甲级.1044. Shopping in Mars (25)
- PAT (Advanced Level) Practise 1044 Shopping in Mars (25)
- PAT 1044. Shopping in Mars (25)(子序列分割问题,题目不错)
- PAT(A) - 1044. Shopping in Mars (25)
- PAT 1044. Shopping in Mars (25)
- PAT-A-1044. Shopping in Mars (25)
- PAT (Advanced Level) 1044. Shopping in Mars (25) 找符合要求的连续子数组,贪心
- 【PAT】1044. Shopping in Mars (25)