差三个点,求助!!!
查看原帖
差三个点,求助!!!
576242
StkOvflow楼主2022/4/3 21:53

差三个点,dalao们看看有哪里错了,谢谢

#include<bits/stdc++.h>
#define min(x,y) x>y?y:x
int n,ans;
using namespace std;
struct q
{
	int s,k;
}pl[11],cl;
int sum(int a,int b,q p[])
{
	int sum = 0;
	for(int i = a;i <=b;i++)
		sum += pl[i].k;
	return sum;
}
int pro(int a,int b,q p[])
{
	int pro = 1;
	for(int i = a;i <=b;i++)
		pro *= pl[i].s;
	return pro;
}
void dfs(int x)
{
	if(!(x>n+1))
	{
		for(int i = x;i <= n+1;i++)
		{
			cl.k=sum(x-1,i-1,pl);
			cl.s=pro(x-1,i-1,pl);
			ans = min(abs(cl.k-cl.s),ans);
		}
		dfs(x+1);
	}else printf("%d",ans);
}
int main()
{
	scanf("%d",&n);
	for(int i = 1;i <= n; i++)
		scanf("%d %d",&pl[i].s,&pl[i].k);
	cl.k=sum(1,1,pl);
	cl.s=pro(1,1,pl);
	ans = abs(cl.k-cl.s);
	dfs(2);
	return 0;
 } 
2022/4/3 21:53
加载中...