Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- bool isPossible(vector<int>& target) {
- // Special case of 1 number in array.
- if(target.size() == 1)
- if(target[0] == 1)
- return true;
- else
- return false;
- long long int sum=0;
- priority_queue<long long int> pq;
- for(auto &num: target){
- sum += num;
- pq.push(num);
- }
- while(pq.size() > 1){
- if(sum == pq.size()) return true;
- long long int largest = pq.top();
- pq.pop();
- long long int rest = sum-largest;
- if(rest == 1) return true;
- long long int newNum = largest % rest;
- if(newNum < 1 || newNum == largest) return false;
- pq.push(newNum);
- sum = sum-largest+newNum;
- }
- return true;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement