ABC243 C - Collision 2

■考えたこと
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;
}