1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
|
#include <array> #include <bits/stdc++.h> #include <vector> #define all(vec) vec.begin(), vec.end() #define PB push_back #define PF push_front #define EB emplace_back #define EF emplace_front #define EM emplace #define FI first #define SE second #define pct __builtin_popcountll #define ctz __builtin_ctzll #define lson(o) (o << 1) #define rson(o) (o << 1 | 1) #define SZ(a) ((long long)a.size()) #define FOR(i, a, b) for (int i = (a); i <= (b); ++i) #define ROF(i, a, b) for (int i = (a); i >= (b); --i) #define debug(var) cerr << #var << ":" << var << "\n"; #define cend cerr << "\n-----------\n" #define fsp(x) fixed << setprecision(x) #define minn(vec) *min_element(vec.begin(), vec.end()) #define maxx(vec) *max_element(vec.begin(), vec.end()) #define yyy cout << "YES\n" #define nnn cout << "NO\n"
using namespace std;
using ll = long long; using ull = unsigned long long; using DB = double; using LD = long double;
using CD = complex<double>; static constexpr ll MAXN = (ll)1e6 + 10, INF = (1ll << 61) - 1; static constexpr ll mod = (ll)1e9 + 7; static constexpr double eps = 1e-8; const double pi = acos(-1.0); ll N, M, Q, X, K, T, lT; ll fa[MAXN]; ll find(ll x) { if (x == fa[x]) return x; return fa[x] = find(fa[x]); } void merge(ll u, ll v) { u = find(u), v = find(v); fa[u] = v; } void Solve() { cin >> N; vector<array<ll, 2>> A(N + 5); FOR(i, 1, N) { cin >> A[i][0]; } FOR(i, 1, N) { cin >> A[i][1]; } sort(A.begin() + 1, A.begin() + 1 + N); FOR(i, 1, N) { fa[i] = i; } FOR(i, 1, N) { merge(A[i][1], i); } ll invb = 0; FOR(i, 1, N) { if (fa[i] == i) { invb++; } } invb = (N - invb) % 2; ll inva = 0; auto out = [&]() { ll c = inva + invb; c %= 2; if (c) { cout << "A"; } else { cout << "B"; } }; out(); FOR(i, 1, N - 1) { char ch; ll l, r, d; cin >> ch >> l >> r >> d; ll len = r - l + 1; if (d != 0) inva += (len-1)*d; out(); } cout << "\n"; }
signed main() { ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
cin >> lT; while (lT--) Solve(); return 0; }
|