heck:https://www.luogu.com.cn/paste/v7otrjmb
不知道为什么
#include<bits/stdc++.h>
#define int long long
#define pii pair<int,int>
#define fir first
#define se second
#define ull unsigned long long
#define endl "\n"
using namespace std;
const int N = 1e3+5;
const int din = 5000;
int n,x[N],y[N],a[N];
int s1,s2;
int dp[10005];
signed main(){
cin >> n;
for(int i = 1;i <= n;i++){
scanf("%lld%lld",&x[i],&y[i]);
s1+=x[i];
s2+=y[i];
a[i]=x[i]-y[i];
}
memset(dp,0x3f,sizeof dp);
dp[s1-s2+din]=0;
for(int i = 1;i <= n;i++){
for(int j = max(0ll,2*a[i]);j <= 10000;j++){
if(dp[j]!=0x3f3f3f3f) dp[j-2*a[i]]=min(dp[j-2*a[i]],dp[j]+1);
}
}
for(int i = 0;i <= 5000;i++){
if(dp[i+din]!=0x3f3f3f3f||dp[din-i]!=0x3f3f3f3f){
cout<<min(dp[i+din],dp[din-i]);
exit(0);
}
}
return 0;
}