#include #include #include using namespace std; class Train { public: int p; int s; char d; int l; // at time t int left_p; int right_p; Train(int p, int s, char d, int l) { this->p = p; this->s = s; this->d = d; this->l = l; } void position(int t) { if (d == 'L') { this->left_p = this->p - this->s * t; this->right_p = this->left_p + this->l - 1; } else { // going right this->right_p = this->p + this->l + this->s * t - 1; this->left_p = this->right_p - this->l + 1; } } }; int main () { int n, m, t; cin >> n >> m >> t; vector trains; for (int i = 0; i < m; i++) { int p, s, l; char d; cin >> p >> s >> d >> l; Train train = Train(p, s, d, l); train.position(t); trains.push_back(train); } for (int i = 0; i < m; i++) { Train train = trains[i]; string result; if (train.d == 'L') { for (int curr = 0; curr < n; curr++) { char to_add; if (train.left_p <= curr && curr <= train.right_p) { to_add = curr == train.left_p ? '!' : '#'; } else { to_add = '='; } result += to_add; } } else { for (int curr = 0; curr < n; curr++) { char to_add; if (train.right_p >= curr && curr >= train.left_p) { to_add = curr == train.right_p ? '!' : '#'; } else { to_add = '='; } result += to_add; } } cout << result << endl; } }