重新表达该标题为: 在牛客网上,探索牛牛的数组匹配方法
最编程
2023-12-31 12:57:37
...
#include<stdio.h>
/*思路:从完整数组开始,不断去掉前面的一个元素,用剩下的子数组进行下轮比较;
*每轮判断规则(如果满足减去数组2当前的最后一个元素后,如果和数组1差值变小了,
*就继续减去尾元素,直到满足差值最小,得到本轮最优解; 用该值和下一轮进行比较,
*如果下一轮差值更小,则继续切割数组,找更下一轮,直到不满足,然后根据i,j位置输出数组元素;
*/
#include <stdio.h>
int num(int a,int b)
{
if(a>=b)
return a-b;
else
return b-a;
}
int main()
{
int n,m;
scanf("%d %d",&n,&m);
int a[100]={0};
int b[100]={0};
int sum1=0,sum2=0,min,k,l;
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(int i=0;i<m;i++)
{
scanf("%d",&b[i]);
}
for(int i=0;i<n;i++)
{
sum1+=a[i];
}
min=sum1;
for(int i=0;i<m;i++)
{
sum2=b[i];
for(int j=i+1;j<=m;j++)
{
if(num(sum1,sum2)<min)
{
min=num(sum1,sum2);
k=i;
l=j;
}
sum2+=b[j];
}
}
for(int i=k;i<l;i++)
{
printf("%d ",b[i]);
}
return 0;
}