PAT1044

来源:互联网 发布:php分类信息网源码 编辑:程序博客网 时间:2024/06/11 04:26
#include<stdio.h>#include<math.h>#include<vector>using namespace std;const int num=100010;const int inf=1e9;int diamond[num];int sum[num]={0};int n,m;struct node{int pre;int post;};vector<node>vc;int main(){//freopen("in.txt","r",stdin);scanf("%d%d",&n,&m);for(int i=1;i<=n;i++){scanf("%d",&diamond[i]);sum[i]=sum[i-1]+diamond[i];}int sub=1e9;int k=1;for(int i=1;i<=n;i++){for(int j=k;j<=n;j++){if(sum[j]-sum[i]+diamond[i]>=m){int tmp=sum[j]-sum[i]+diamond[i];if(tmp-m<sub){sub=tmp-m;vc.clear();node p;p.pre=i;p.post=j;vc.push_back(p);}else if(tmp-m==sub){node p;p.pre=i;p.post=j;vc.push_back(p);}k=j;//记下上一轮到达的位置,下一轮从这里开始 break;}}}vector<node>::iterator it=vc.begin();for(;it!=vc.end();it++)printf("%d-%d\n",(*it).pre,(*it).post);return 0;}

0 0
原创粉丝点击