ログインしてください。
公式
B - Cutting Circle 解説
by
B - Cutting Circle 解説
by
keisuke6
\(a,b,c,d\) のいずれか 2 つが等しければ、明らかに答えは 3 です。以下、全てが互いに異なることと、 \(a < b, c < d, a < c\) であることとします。後者の言い換えに関しては一般性を失いません。
この条件の下では、 \(c < b\) かつ \(b < d\) であったら答えは 4 であり、そうでなければ答えは 3 です。 適切な場合分けにより \(O(1)\) で解くことができます。
#include <bits/stdc++.h>
using namespace std;
int main(){
int N, A, B, C, D;
cin >> N >> A >> B >> C >> D;
if(A == B || A == C || A == D || B == C || B == D || C == D){
cout << 3 << endl;
return 0;
}
if(A > B) swap(A, B);
if(C > D) swap(C, D);
if(A > C){
swap(A, C);
swap(B, D);
}
if(C < B && B < D) cout << 4 << endl;
else cout << 3 << endl;
}
投稿日時:
最終更新:
