fork download
  1. #include<bits/stdc++.h>
  2. using namespace std;
  3.  
  4. // define
  5.  
  6. #define execute cerr << " Time: " << fixed << setprecision(6) << (1.0 * clock() / CLOCKS_PER_SEC) << "s\n";
  7. #define ll long long
  8. #define ii pair <int , int>
  9. #define iii pair <int , ii>
  10. #define se second
  11. #define fi first
  12. #define all(v) (v).begin() , (v).end()
  13. #define Unique(v) sort(all(v)) , v.resize(unique(all(v)) - v.begin())
  14. #define bit(x,i) (((x) >> (i)) & 1LL)
  15. #define flip(x,i) ((x) ^ (1LL << (i)))
  16. #define ms(d,x) memset(d , x , sizeof(d))
  17. #define exist __exist
  18. #define ends __ends
  19. #define visit visited
  20. #define left __left
  21. #define right __right
  22. #define sitingfake 1
  23. #define orz 1
  24. //constant
  25.  
  26. const long long mod = 1e9 + 7;
  27. const long long linf = 4557430888798830399LL;
  28. const long long nlinf = -4485090715960753727LL;
  29. const int inf = 1061109567;
  30. const int ninf = -1044266559;
  31. const int dx[] = {0 , -1 , 0 , 1};
  32. const int dy[] = {-1 , 0 , 1 , 0};
  33.  
  34. template<typename T> bool maximize(T &a, const T &b)
  35. {
  36. if(a < b) {a = b; return 1;}
  37. return 0;
  38. }
  39.  
  40. template<typename T> bool minimize(T &a, const T &b)
  41. {
  42. if(a > b) {a = b; return 1;}
  43. return 0;
  44. }
  45.  
  46. void Plus(ll & a ,ll b)
  47. {
  48. b %= mod;
  49. a += b;
  50. if(a < 0) a += mod;
  51. a %= mod;
  52. return;
  53. }
  54.  
  55. void Mul(ll & a, ll b)
  56. {
  57. (a *= (b % mod)) %= mod;
  58. return;
  59. }
  60.  
  61. //code
  62.  
  63. string a, b;
  64.  
  65. int maska, maskb;
  66.  
  67. int build(string &s) {
  68. int mask = 0;
  69. for(int i = 0; i < s.size(); i++) {
  70. int x = s[i] - '0';
  71. mask |= (1 << x);
  72. }
  73. return mask;
  74. }
  75.  
  76. void change(string &s, int target) {
  77. for(int i = 1; i < s.size(); i++) {
  78. int x = s[i - 1] - '0', y = s[i] - '0';
  79. int t = 0;
  80. if((x - 1 >= (i == 1)) && y + 1 <= 9) {
  81. s[i - 1] = (x - 1) + '0';
  82. s[i] = (y + 1) + '0';
  83. t = build(s);
  84. if(t == target) {
  85. cout << "almost friends";
  86. exit(0);
  87. }
  88. s[i - 1] = x + '0';
  89. s[i] = y + '0';
  90. }
  91. if(x + 1 <= 9 && y - 1 >= 0) {
  92. s[i - 1] = (x + 1) + '0';
  93. s[i] = (y - 1) + '0';
  94. t = build(s);
  95. if(t == target) {
  96. cout << "almost friends";
  97. exit(0);
  98. }
  99. s[i - 1] = x + '0';
  100. s[i] = y + '0';
  101. }
  102. }
  103. }
  104.  
  105. void solve(void)
  106. {
  107. cin >> a >> b;
  108. maska = build(a);
  109. maskb = build(b);
  110. if(maska == maskb)
  111. {
  112. cout << "friends";
  113. return;
  114. }
  115. change(a, maskb);
  116. change(b, maska);
  117. cout << "nothing";
  118. }
  119. /**
  120. **/
  121. signed main()
  122. {
  123. ios_base::sync_with_stdio(0);
  124. cin.tie(0);
  125. cout.tie(0);
  126.  
  127. #define task "digits"
  128.  
  129. if(fopen(task".inp","r"))
  130. {
  131. freopen(task".inp","r",stdin);
  132. freopen(task".out","w",stdout);
  133. }
  134.  
  135. int tc = 1;
  136. // cin >> tc;
  137. while(tc--) solve();
  138.  
  139. // execute;
  140. }
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
friends