fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. const int maxN = 1e5+7 , mod = 1e9+7;
  4. string n;
  5. int chia3() {
  6. string ans = "";
  7. int rem = 0;
  8. for (char c : n) {
  9. int d = c - '0';
  10. int current = rem * 10 + d;
  11. int q = current / 3;
  12. rem = current % 3;
  13. if (ans.length() > 0 || q > 0)
  14. ans += to_string(q);
  15. }
  16. if (ans == "") n = "0";
  17. else n = ans;
  18. return rem;
  19. }
  20.  
  21. void Solve()
  22. {
  23. vector<int> rem;
  24. while (n != "0") {
  25. rem.push_back(chia3());
  26. }
  27. vector<int> cantrai;
  28. vector<int> canphai;
  29. int du = 0;
  30.  
  31. for (int i = 0; i < rem.size(); i++) {
  32. int val = rem[i] + du;
  33. if (val == 3)
  34. du = 1;
  35. else if (val == 2) {
  36. canphai.push_back(i);
  37. du = 1;
  38. }
  39. else if (val == 1) {
  40. cantrai.push_back(i);
  41. du = 0;
  42. }
  43. else du = 0;
  44. }
  45. if (du == 1) cantrai.push_back(rem.size());
  46. for (int i = 0; i < cantrai.size(); i++)
  47. cout << cantrai[i] << " ";
  48. cout << "\n";
  49. for (int i = 0; i < canphai.size(); i++)
  50. cout << canphai[i] << " ";
  51. cout << "\n";
  52. }
  53.  
  54. int main()
  55. {
  56. ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
  57. if (fopen("WEIGHTS.INP" , "r")){
  58. freopen("WEIGHTS.INP" , "r" , stdin);
  59. freopen("WEIGHTS.OUT" , "w" , stdout);
  60. }
  61. cin >> n;
  62. Solve();
  63. return 0;
  64. }
  65.  
Success #stdin #stdout 0.01s 5288KB
stdin
Standard input is empty
stdout