■考えたこと
y座標が同じ座標ごとにまとめれば見通しが良くなる。
まとめ後はx座標とR/Lのペアでデータを持ち、昇順でソートしてRLのペアが
存在するか判定すればOK。
ACしたコードは下記。
int main() { int n; cin >> n; vector<int> x(n), y(n); for (int i = 0; i < n; i++) cin >> x[i] >> y[i]; string s; cin >> s; map<int, vector<pair<int, char>>> mp; for (int i = 0; i < n; i++) { mp[y[i]].push_back(make_pair(x[i], s[i])); } for (auto e : mp) { auto ps = e.second; sort(ps.begin(), ps.end()); for (int i = 0; i < ps.size() - 1; i++) { if (ps[i].second == 'R' && ps[i + 1].second == 'L') { cout << "Yes" << endl; return 0; } } } cout << "No" << endl; }