题目描述
【题目描述】
大哈是个美食家,最喜欢的美食就是东坡肉,并且他吃东坡肉还有一个怪癖,他认为一盘东坡肉中瘦肉重量之和如果越接近肥肉重量之和,这样子的一顿东坡肉才是越好吃的。他早上刚买了一大坨猪肉,还让商家帮忙切成了n块,每一块猪肉里有肥肉也有瘦肉。
现在他想让你帮他从这些块猪肉中选出最满足他口味的一些来做东坡肉。
注意:至少选1块,他不想只喝西北风!
【输入格式】
第1行 一个整数 n,表示猪肉的块数。
第2到n+1行,每行2个整数a和b,分别代表肥肉的重量和瘦肉的重量。
【输出格式】
1个整数,表示选取肥肉和瘦肉的最小绝对差。
【样例输入】
2
4 7
4 2
【样例输出】
1
【约定】
1<=n<=10
保证全部肥肉和与瘦肉和均小于1e9
保证全部肥肉和与瘦肉和不同时为0
我的代码
#include<bits/stdc++.h>
using namespace std;
long long n,ans=999999999999;
long long a[105],b[105];
void dfs(long long x,long long s1,long long s2)
{
if(x>n)
{
if(ans>abs(s1-s2))
{
ans=abs(s1-s2);
}
return ;
}
for(long long i=0;i<=1;i++)
{
dfs(x+1,s1+i*a[x],s2+i*b[x]);
}
}
int main()
{
cin>>n;
for(long long i=1;i<=n;i++)
{
cin>>a[i]>>b[i];
}
dfs(1,0,0);
cout<<ans;
return 0;
}
请各位大佬看看有什么问题