公式

D - Pentagon 解説 by nok0


線分の長さは \(2\) 通りしかないことに着目します。

線分 \(AB\) , \(BC\), \(CD\), \(DE\), \(EA\) は短く、残りの線分は長いです。そのため、与えられた線分が短いか長いかを判定すればよいです。実装例も参考にしてください。

(補足):与えられた線分が短いことは、点が \(P\) 上で隣接していることと同値です。文字同士の引き算を用いると場合分けが減り簡単です。

実装例(C++):

#include <bits/stdc++.h>
using namespace std;

int main() {
	char a, b, c, d;
	cin >> a >> b >> c >> d;
	auto near = [](char x, char y) {
		if(x > y) swap(x, y);
		return y - x == 1 or y - x == 4;
	};
	if(near(a, b) == near(c, d))
		cout << "Yes\n";
	else
		cout << "No\n";
}

投稿日時:
最終更新: