WARush

SRMの結果とか、解けた問題のコードを書いていきます

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";
    }
};