欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

重新表达该标题为: 在牛客网上,探索牛牛的数组匹配方法

最编程 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; }