#include #include #include #include #include using namespace std; #define N 1010 #define inf 2000000010 struct node{ int x,li,id; }w[N]; bool cmp(const node &a,const node &b){ if(a.x!=b.x) return a.xb.li; } int dp[N][N]; int main(){ int T,n,id; scanf("%d",&T); while(T--){ scanf("%d",&n); int Min=-inf; for(int i=0;i>1); for(int i=1;i>1); int r=w[i].x+(w[i].li+1>>1); for(int j=0;j<=i;++j) if(dp[i-1][j]<=l) dp[i][j+1]=r; continue; } for(int j=0;j<=i;++j){ dp[i][j]=min(dp[i][j],dp[i-1][j]); if(dp[i-1][j]!=inf){ if(dp[i-1][j]<=w[i].x){ int temp=max(dp[i-1][j]+w[i].li,w[i].x); dp[i][j+1]=min(dp[i][j+1],temp); } } } } for(int i=n;i;--i) if(dp[n-1][i]!=inf){ printf("%d\n",i); break; } } return 0; }