题解 | #牛牛的数组匹配#

牛牛的数组匹配

https://www.nowcoder.com/practice/3d3406f4a7eb4346b025cc592be5b875

#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
int main() {
    int a, b,suma=0;
    scanf("%d %d", &a, &b);
    while(a--)
    {
        int n;
        scanf("%d",&n);
        suma+=n;
    }
    int i,j,left,left2=0,right,right2=b-1,sumb=0,tmp,min=INT_MAX,*arr=malloc(sizeof(int)*b);
    while(~scanf("%d",arr+i++));
    for(i=0;i<b;i++)
    {
        for(j=i;j<b;j++)
        {
            sumb+=arr[j];
            if(sumb>suma)
            {
                left=i;
                if(suma-sumb+arr[j]<=sumb-suma)
                right=j-1,sumb-=arr[j];
                else
                right=j;
                tmp=sumb-suma;
                if(tmp<0)
                tmp=-tmp;
                if(tmp<min)
                {
                    min=tmp;
                    left2=left,right2=right;
                }
                break;
            }
        }
        sumb=0;
    }
    for(i=left2;i<=right2;i++)
    {
        printf("%d ",arr[i]);
    }
    return 0;
}

全部评论

相关推荐

冲芭芭拉鸭:你这图还挺新,偷了。
投递美团等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务