SRM505 Div2 Medium(500) PerfectSequences

PerfectSequences

各要素を書き換えてperfect sequenceにできるかどうか調べる。

#include <vector>
#include <string>
using namespace std;

class PerfectSequences{public:
string fixIt( vector <int> seq )
{
    int n = (int)seq.size();
    if ( n == 1 )
        return "Yes";

    for ( int i=0; i<n; i++ )
    {
        long long sum = 0;
        long long pro = 1;
        for ( int j=0; j<n; j++ )
            if ( j != i )
                sum += seq[j],
                pro *= seq[j];

        if ( pro-1 != 0 )
        {
            if ( sum%(pro-1) == 0  &&
                 sum/(pro-1) >= 0  &&
                 sum/(pro-1) != seq[i] )
                return "Yes";
        }
        else
        {
            if ( sum == 0 )
                return "Yes";
        }
    }

    return "No";
}};