91pts,求救大佬啊!#10WA了
查看原帖
91pts,求救大佬啊!#10WA了
667558
_Kamisato_Ayaka_楼主2022/8/18 08:17
#include<bits/stdc++.h>
#define N 11111111
using namespace std;
int n,a,b;
int sum,f[N],pos,ans;
int main(){
	memset(f,0x7f7f7f7f,sizeof(f));
	f[0]=0;
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	cin>>n;
	for(int i=1;i<=n;i++){
		cin>>a>>b;
		sum+=a+b;
		for(int i=sum;i>=0;i--){
			if(f[i]!=0x7f7f7f7f){
				f[i+a]=min(f[i+a],f[i]);
				f[i+b]=min(f[i+b],f[i]+1);
				f[i]=0x7f7f7f7f;
			}
		}
	}
	pos=sum/2;
	if(pos%2==0){
		for(int i=0;i<pos;i++){
			ans=min(f[pos-i],f[pos+i]);
			if(ans!=0x7f7f7f7f){
				cout<<ans<<endl;
				return 0;
			}
		}
	}
	else{
		for(int i=1;i<=pos;i++){
			ans=min(f[pos-i+1],f[pos+i]);
			if(ans!=0x7f7f7f7f){
				cout<<ans<<endl;
				return 0;
			}
		}
	}
	return 0;
}
2022/8/18 08:17
加载中...