/* -*- coding: utf-8 -*- * * 2482.cc: No.2482 Sandglasses - yukicoder */ #include #include #include using namespace std; /* constant */ const int MAX_N = 200000; /* typedef */ typedef long long ll; typedef pair pii; /* global variables */ int as[MAX_N], bs[MAX_N], cs[MAX_N], ds[MAX_N]; pii bis[MAX_N]; /* subroutines */ /* main */ int main() { int n, k, t; scanf("%d%d%d", &n, &k, &t); for (int i = 0; i < n; i++) { char s[4]; scanf("%s", s); as[i] = s[0]; } for (int i = 0; i < n; i++) scanf("%d", bs + i); int k2 = k * 2; t %= k2; for (int i = 0; i < n; i++) { bis[i] = pii(bs[i], i); int ti = (as[i] == 'B') ? ((ll)bs[i] + t) % k2 : ((ll)k2 - bs[i] + t) % k2; cs[i] = (ti < k) ? ti : k2 - ti; } sort(bis, bis + n); sort(cs, cs + n); for (int i = 0; i < n; i++) ds[bis[i].second] = cs[i]; for (int i = 0; i < n; i++) printf("%d%c", ds[i], (i + 1 < n) ? ' ' : '\n'); return 0; }