PAT1044-Shopping in Mars
C语言源码:[cpp]
#include<stdio.h>
#define maxsize 100010
int a[maxsize];
int main()
{
int sum,min,n,i,m,j;
scanf("%d %d",&n,&m);
min=-1;
sum=0;
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
i=1;j=1;sum=a[1];
while(j<=n)
{
if(sum<m)
sum+=a[++j];
else
if(sum==m)
{
min=m;
break;
}
else
{
if(min==-1)
min=sum;
else
if(sum-m<min-m)
min=sum;
sum-=a[i++];
if(i>j)
{
j=i;
sum=a[i];
}
}
}
i=1;j=1;sum=a[1];
while(j<=n)
{
if(sum==min)
{
printf("%d-%d\n",i,j);
sum-=a[i++];
sum+=a[++j];
}
else
{
if(sum<min)
sum+=a[++j];
else
sum-=a[i++];
}
if(i>j)
{
j=i;
sum=a[i];
}
}
return 0;
}
补充:软件开发 , C++ ,