fork(1) download
  1. #include<bits/stdc++.h>
  2. #include<vector>
  3. #include<queue>
  4. using namespace std;
  5.  
  6. void multiple(int A) {
  7. printf("chk0\n");
  8. int p=1,tmp,val,pr;
  9. string ret="";
  10. vector<int> par(100000),flag(100000),value(100000);
  11. printf("chk0\n");
  12. val=p%A;
  13. printf("chk0\n");
  14. // par[val]=0;
  15. printf("chk0\n");
  16. flag[val]=1;
  17.  
  18. value[val]=1;
  19.  
  20. queue<int> q;
  21. printf("*chk0\n");
  22. q.push(val);
  23. printf("Chk1\n");
  24. while(!q.empty())
  25. {
  26. pr=q.front();
  27. printf("pr=%d\n",pr);
  28. q.pop();
  29. if(pr==0)
  30. {
  31. while(par[pr]!=0)
  32. {
  33. ret+=value[pr]+'0';
  34. pr=par[pr];
  35. }
  36.  
  37. reverse(ret.begin(),ret.end());
  38. //return ret;
  39. //printf("%s\n",ret);
  40. cout<<ret;
  41. }
  42. else
  43. {
  44. p=(p*10)%A;
  45. val=p%A;
  46. if(flag[val]==0)
  47. {
  48. q.push(val);
  49. par[val]=pr;
  50. flag[val]=1;
  51. value[val]=0;
  52. }
  53.  
  54. p++;
  55. val=p%A;
  56. if(flag[val]==0)
  57. {
  58. q.push(val);
  59. par[val]=pr;
  60. flag[val]=1;
  61. value[val]=1;
  62. }
  63. }
  64. }
  65.  
  66. }
  67.  
  68. int main()
  69. {
  70. int n;
  71. scanf("%d",&n);
  72. printf("in main\n");
  73. multiple(n);
  74. return 0;
  75. }
Success #stdin #stdout 0s 2868KB
stdin
2
stdout
in main
chk0
chk0
chk0
chk0
*chk0
Chk1
pr=1
pr=0
0