1003 Pty loves lines
#include<iostream> #include<cstring> #include<queue> #include<map> #include<set> #include<algorithm> #include<cmath> #include<vector> #define fi first #define se second #define lowbit(x) (x&-x) using namespace std; namespace ae86{ const int bufl=1<<15; char buf[bufl],*s=buf,*t=buf; inline int fetch(){ if(s==t){t=(s=buf)+fread(buf,1,bufl,stdin);if(s==t)return EOF;} return*s++; } inline int read(){ int a=0,b=1,c=fetch(); while(!isdigit(c))b^=c=='-',c=fetch(); while(isdigit(c))a=a*10+c-48,c=fetch(); return b?a:-a; } } using ae86::read; typedef long long ll; typedef pair<int,int> pii; typedef pair<ll,ll> pll; typedef pair<int,double> pid; const int inf=0x3f3f3f3f; const ll INF=2e18; const double eps=1e-8; const double pi=acos(-1); const int mod=1e9+7; const int N = 710, UP = 31500; bitset<UP> f[N]; void init() { f[0][0]=1; for (int i=1; i<N; i++) { for (int k=1; k<=i; k++) f[i]|=f[i-k]<<(k*(i-k)); } } void print(int x) { int lim=min(UP-1,x*(x-1)/2); for (int i=0; i<=lim; i++) if (f[x][i]) printf("%d ",i); for(int i=lim+1;i*2<=x*(x-1);i++) printf("%d ",i); putchar('\n'); } int main() { init(); int T=0; for(cin>>T;T;T--){ int n; cin>>n; print(n); } }