注意力系。現在の AGC ではあまり見ない系な気もする。
問題概要
整数 が与えられる。 すべての積が正か負か 0 かを判定せよ。
制約
考えたこと
こういうのは場合分けを丁寧にやろう!!!
まず、 のケースがわかりやすく になる。
そう思ったら、それ以外の場合を考えることに専念すればよい。つまり今回の問題で言えば、
- がすべて正の場合
- がすべて負の場合
のみを考えれば良いということになる。今回の問題に限らず、
自明な場合をいち早く片付けておいて、「〜な場合を考えれば良い」という風にして考察を楽にする
というのは非常によくやる考察の流れだと思う。さて、すべてが正の場合は簡単で答えが正で確定する。すべてが負の場合も「偶数個だったら正」で「奇数個だったら負」で OK。
#include <iostream> using namespace std; int main() { int a, b; cin >> a >> b; if (a <= 0 && 0 <= b) cout << "Zero" << endl; else if (a > 0) cout << "Positive" << endl; else { int num = b - a + 1; if (num % 2 == 0) cout << "Positive" << endl; else cout << "Negative" << endl; } }