SRM572 Div2 Easy "EasyHomework"
問題
数列が与えられる。
その数列を順に掛け算していった時に、
答えは 0より大きいか、小さいか、0かを返せ。
制約
1 <= 数列の要素数 <= 50
-10^9 <= 数列の値 <= 10^9
考えた事
現在の数値 | 次に掛ける数値 | 結果 |
+ | + | + |
+ | - | - |
- | + | - |
- | - | + |
これを要素数だけやる
他の人のソースコードを見て
あ・・・ 0未満の数値の数の偶奇を確かめればいいだけじゃん・・・
ソースコード
class EasyHomework { public: string determineSign(vector <int> A){ bool positive = true; int n = A.size(); for( int i = 0; i < n; i++ ){ bool p = true; if( A[i] < 0 ){ p = false; }else if( A[i] == 0 ){ return "ZERO"; } positive ^= p; positive = !positive; } return positive ? "POSITIVE" : "NEGATIVE"; } };