#include<stdio.h> #include<math.h> #include <stdlib.h> int main() { int n,m; int p,q; int a[100]={0}; int b[100]={0}; int i,j; int sum=0; scanf("%d%d",&n,&m); for(i=0;i<n;i++)//初始化a { scanf("%d",&a[i]); sum+=a[i];//求a所有元素和 } for(i=0;i<m;i++)//初始化b { scanf("%d",&b[i]); } int min=sum;//min表示x与sum的距离(等价于sum-x的绝对值) for(i=0;i<m;i++)//计算sum1与sum最近的值(sum1从遍历b[i]加到b[m]中找) { int sum1=0; for(j=i;j<m;j++) { sum1+=b[j]; if(abs(sum-sum1)<min)//abs(x)x为int类型:表示x的绝对值。 { min=abs(sum-sum1); p=i;//记录位置 q=j; } if(sum1>sum)//为了节省时间,判断什么时候跳出此层循环 break; } } for(i=p;i<=q;i++)//打印 { printf("%d ",b[i]); } return 0; }