当前位置:编程学习 > C/C++ >>

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++ ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,