fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. #pragma region Macros
  5. #define Faster ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
  6. #define ll long long
  7. #define ld long double
  8. #define pii pair<int, int>
  9. #define pll pair<long long, long long>
  10. #define all(x) x.begin(), x.end()
  11. #define rall(x) x.rbegin(), x.rend()
  12. #define pb push_back
  13. #define ff first
  14. #define ss second
  15. #define endl '\n'
  16. #define yes cout << "YES" << endl
  17. #define no cout << "NO" << endl
  18. #define m1 cout << -1 << endl
  19. #pragma endregion
  20.  
  21. #pragma region Math
  22. const ll MOD = 1e9 + 7;
  23. ll gcd(ll a, ll b) { return __gcd(a, b); }
  24. ll lcm(ll a, ll b) { return (a / gcd(a, b)) * b; }
  25. #pragma endregion
  26.  
  27. void solve() {
  28. ll n; cin>>n;
  29. ll l=n%10;
  30. int flag=1, cnt=0;
  31. while(n){
  32. if(n%10!=l){
  33. flag=0;
  34. break;
  35. }
  36. n/=10;
  37. cnt++;
  38. }
  39. if(!flag){
  40. cout<<0<<endl;
  41. return;
  42. }
  43. vector<string>v;
  44. for(int i=1;i<=cnt/2;i++){
  45. string s;
  46. if(cnt%i==0 and (cnt/i)%2==0){
  47. int p=cnt/i;
  48. p--;
  49. p/=2;
  50. int tr;
  51. for(int j=1;j<=p;j++){
  52. int tr=i;
  53.  
  54. while(tr--) s+=to_string(l);
  55. tr=i;
  56. while(tr--) s+='0';
  57. }
  58. tr=i;
  59. while(tr--) s+=to_string(l);
  60. v.push_back(s);
  61. }
  62. }
  63. cout<<v.size()<<endl;
  64.  
  65. sort(rall(v));
  66. for(auto x:v)
  67. cout<<x<<" ";
  68. cout<<endl;
  69. }
  70.  
  71. int main() {
  72. Faster;
  73. int t = 1;
  74. cin >> t;
  75. while (t--) solve();
  76. return 0;
  77. }
Success #stdin #stdout 0s 5324KB
stdin
5
1111
12
55
999999999999999999
1000000000000000000
stdout
2
11 101 
0
1
5 
3
999999999 999000999000999 90909090909090909 
0