fork download
  1. #include<cstdio>
  2. #include<vector>
  3. #include<cmath>
  4. #include<list>
  5. #include<algorithm>
  6. #define ll long long
  7. using namespace std;
  8. list<ll>adj[1000001];
  9. bool visited[1000001];
  10. ll bfs(ll s,ll n)
  11. {
  12. ll i,flag,tmp,ans,j,sum,rem,inti;
  13. for(i=1;i<=100000;i++)
  14. visited[i] = false;
  15. list<ll> q;
  16. list<ll>:: iterator it;
  17. i = 1;
  18. q.push_back(i);
  19. while(1)
  20. {
  21. s = q.front();
  22. q.pop_front();
  23. adj[s].push_back(s*2);
  24. adj[s].push_back(s*2+1);
  25. flag = 0;
  26. for(it=adj[s].begin();it!=adj[s].end();it++)
  27. {
  28. if(visited[*it])
  29. {
  30. visited[*it] = true;
  31. q.push_back(*it);
  32. tmp = *it;
  33. ans = tmp;
  34. j = 0;
  35. sum = 0;
  36. while(tmp>0)
  37. {
  38. rem = tmp%2;
  39. inti = (ll)pow(10,j);
  40. sum = sum + ((rem*inti)%n);
  41. tmp = tmp/2;
  42. j++;
  43. }
  44. sum = sum%n;
  45. if(sum==0)
  46. {
  47. flag = 1;
  48. break;
  49. }
  50. }
  51. }
  52. if(flag==1)
  53. break;
  54. }
  55. return ans;
  56. }
  57. int main()
  58. {
  59. ll k,n,tmp,rem,i;
  60. vector<ll>v;
  61. scanf("%lld",&k);
  62. while(k--)
  63. {
  64. scanf("%lld",&n);
  65. tmp = bfs(1,n);
  66. while(tmp>0)
  67. {
  68. rem = tmp%2;
  69. v.push_back(rem);
  70. tmp = tmp/2;
  71. }
  72. for(i=v.size()-1;i>=0;i--)
  73. printf("%lld",v[i]);
  74. printf("\n");
  75. }
  76. return 0;
  77. }
Runtime error #stdin #stdout #stderr 0s 12264KB
stdin
Standard input is empty
stdout
Standard output is empty
stderr
*** Error in `./prog': munmap_chunk(): invalid pointer: 0xff8abb88 ***