fork(1) download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. // Speed
  5. #define fast_io ios::sync_with_stdio(0); cin.tie(0); cout.tie(0)
  6.  
  7. // Typedefs
  8. #define int long long
  9. #define pb push_back
  10. #define ff first
  11. #define ss second
  12. #define all(x) (x).begin(), (x).end()
  13. #define rall(x) (x).rbegin(), (x).rend()
  14. #define sz(x) ((int)(x).size())
  15. #define endl '\n'
  16.  
  17. // Consts
  18. const int INF = 1e18;
  19. const int MOD = 1e9+7;
  20.  
  21. // Math
  22. int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); }
  23. int lcm(int a, int b) { return (a / gcd(a, b)) * b; }
  24.  
  25. int power(int a, int b, int m = MOD) {
  26. int res = 1;
  27. while (b > 0) {
  28. if (b & 1) res = res * a % m;
  29. a = a * a % m;
  30. b >>= 1;
  31. }
  32. return res;
  33. }
  34.  
  35. int modinv(int a, int m = MOD) {
  36. return power(a, m - 2, m);
  37. }
  38.  
  39. // -------- PERMUTATION LOGIC --------
  40.  
  41. vector<int> getPerm(int idx) {
  42. vector<int> a = {1,2,3,4};
  43. idx %= 24; // clamp index
  44. while (idx--)
  45. next_permutation(a.begin(), a.end());
  46. return a;
  47. }
  48.  
  49. void comparePerm(int j, int k) {
  50. vector<int> p = getPerm(j);
  51. vector<int> q = getPerm(k);
  52.  
  53. int A = 0, B = 0;
  54. vector<int> usedP(4, 0), usedQ(4, 0);
  55.  
  56. for (int i = 0; i < 4; i++) {
  57. if (p[i] == q[i]) {
  58. A++;
  59. usedP[i] = usedQ[i] = 1;
  60. }
  61. }
  62.  
  63. for (int i = 0; i < 4; i++) {
  64. if (usedP[i]) continue;
  65. for (int t = 0; t < 4; t++) {
  66. if (!usedQ[t] && p[i] == q[t]) {
  67. B++;
  68. usedQ[t] = 1;
  69. break;
  70. }
  71. }
  72. }
  73.  
  74. cout << A << "A" << B << "B" << endl;
  75. }
  76.  
  77. // -------- SOLVE --------
  78.  
  79. void solve() {
  80. int j, k;
  81. cin >> j >> k;
  82. comparePerm(j, k);
  83. }
  84.  
  85. // -------- MAIN --------
  86.  
  87. int32_t main() {
  88. fast_io;
  89.  
  90. int t;
  91. cin >> t;
  92. while (t--) {
  93. solve();
  94. }
  95. return 0;
  96. }
  97.  
Success #stdin #stdout 0.01s 5324KB
stdin
3
1234 15 9
1234 1 24
1234 1 1
stdout
0A4B
1A3B
2A2B