はまやんはまやんはまやん

hamayanhamayan's blog

Range Product [AGC 002 : A]

問題

http://agc002.contest.atcoder.jp/tasks/agc002_a

a <= b が与えられるとき、a, a + 1, ... , b の全ての数の積の正・負・0を判定せよ

-10^9 <= a <= b <= 10^9

考察

1. 積が0になるのは0が含まれるとき
2. これは a*b<=0 のときである

3. 0 < a <= b であれば積は必ず正

4. 問題は a <= b < 0 の時である
5. 掛ける個数は偶数なら正、奇数なら負を返せば良い

実装

http://agc002.contest.atcoder.jp/submissions/824079

typedef long long ll;
ll a, b;
//-----------------------------------------------------------------
int main() {
	cin >> a >> b;
 
	if (a*b <= 0) {
		cout << "Zero" << endl;
		return 0;
	}
 
	if (0 < a) {
		cout << "Positive" << endl;
		return 0;
	}
 
	int d = b - a;
	if (d % 2 == 1)
		cout << "Positive" << endl;
	else
		cout << "Negative" << endl;
}