然而只有72分
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e5+10;
inline int read(){
int s=0,w=1;
char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
while(ch>='0'&&ch<='9') s=s*10+ch-'0',ch=getchar();
return s*w;
}
int n;
int a[1001],b[1001];
int dp[1001][1001];
int main()
{
memset(dp,128,sizeof(dp));
n=read();
for(int i=1;i<=n;i++)
{
a[i]=read();
b[i]=read();
}
int s1=0,s2=0;
for(int i=1;i<=n;i++)
{
s1+=a[i],s2+=b[i];
dp[i][0]=s1-s2;
}
dp[1][1]=b[1]-a[1];
for(int i=2;i<=n;i++)
{
for(int j=1;j<=i;j++)
{
if(abs(dp[i-1][j]+a[i]-b[i])<=abs(dp[i-1][j-1]+b[i]-a[i]))
dp[i][j]=dp[i-1][j]+a[i]-b[i];
else
dp[i][j]=dp[i-1][j-1]+b[i]-a[i];
}
}
int res=0,min=0x3f3f3f3f;
for(int i=0;i<=n;i++)
{
if(abs(dp[n][i])<abs(min))
{
res=i;
min=dp[n][i];
}
}
printf("%d\n",res);
return 0;
}