#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define popcount __builtin_popcount using namespace std; typedef long long int ll; typedef pair P; int main() { int n; cin>>n; int dp[300030]; dp[0]=0; for(int i=1; i<=n; i++){ dp[i]=1e9; for(int j=1; j*j<=i; j++){ dp[i]=min(dp[i], dp[i-j*j]+j); } } string ans; int k=n; while(k){ bool ok=0; int t=0; if(!ans.empty() && ans.back()=='1'){ t=1; } for(int i=1+t; i*i<=k; i+=2){ if(dp[k]==dp[k-i*i]+i){ ok=1; if(ans.empty()) ans+='0'; else ans+=ans.back(); for(int j=1; j=1; i-=2){ if(dp[k]==dp[k-i*i]+i){ if(ans.empty()) ans+='0'; else ans+=ans.back(); for(int j=1; j