#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
template < class T> inline T popLast( multiset< T> & a) {
T res;
typename multiset< T> :: iterator it;
it = a.end ( ) ;
it-- ;
res = * it;
a.erase ( it) ;
return res;
}
template < class T> inline T popLast( set< T> & a) {
T res;
typename set< T> :: iterator it;
it = a.end ( ) ;
it-- ;
res = * it;
a.erase ( it) ;
return res;
}
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
class Solution{
public :
bool isPossible( vector< int > & A) {
int i;
long long mx;
long long sm;
long long d;
multiset< int > s;
int N = A.size ( ) ;
for ( i= ( 0 ) ; i< ( N) ; i++ ) {
s.insert ( A[ i] ) ;
}
sm = 0 ;
for ( i= ( 0 ) ; i< ( N) ; i++ ) {
sm + = A[ i] ;
}
while ( sm > N) {
mx = popLast( s) ;
d = mx / ( sm - mx) ;
if ( d == 0 ) {
return false ;
}
{
auto FmcKpFmN = ( d * ( sm - mx) ) ;
sm - = FmcKpFmN;
mx - = FmcKpFmN;
}
s.insert ( mx) ;
}
return true ;
}
}
;
// cLay varsion 20200214-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// class Solution {
// public:
// bool isPossible(vector<int>& A) {
// ll mx, sm, d;
// multiset<int> s;
// int N = A.size();
//
// rep(i,N) s.insert(A[i]);
// sm = 0;
// rep(i,N) sm += A[i];
//
// while(sm > N){
// mx = popLast(s);
// d = mx / (sm - mx);
// if(d == 0) return false;
// (sm, mx) -= d * (sm - mx);
// s.insert(mx);
// }
//
// return true;
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnRlbXBsYXRlPGNsYXNzIFQ+IGlubGluZSBUIHBvcExhc3QobXVsdGlzZXQ8VD4gJmEpewogIFQgcmVzOwogIHR5cGVuYW1lIG11bHRpc2V0PFQ+OjppdGVyYXRvciBpdDsKICBpdCA9IGEuZW5kKCk7CiAgaXQtLTsKICByZXMgPSAqaXQ7CiAgYS5lcmFzZShpdCk7CiAgcmV0dXJuIHJlczsKfQp0ZW1wbGF0ZTxjbGFzcyBUPiBpbmxpbmUgVCBwb3BMYXN0KHNldDxUPiAmYSl7CiAgVCByZXM7CiAgdHlwZW5hbWUgc2V0PFQ+OjppdGVyYXRvciBpdDsKICBpdCA9IGEuZW5kKCk7CiAgaXQtLTsKICByZXMgPSAqaXQ7CiAgYS5lcmFzZShpdCk7CiAgcmV0dXJuIHJlczsKfQojZGVmaW5lIG1haW4gZHVtbXlfbWFpbgppbnQgbWFpbigpewogIHJldHVybiAwOwp9CiN1bmRlZiBtYWluCmNsYXNzIFNvbHV0aW9uewogIHB1YmxpYzoKICBib29sIGlzUG9zc2libGUodmVjdG9yPGludD4mIEEpewogICAgaW50IGk7CiAgICBsb25nIGxvbmcgbXg7CiAgICBsb25nIGxvbmcgc207CiAgICBsb25nIGxvbmcgZDsKICAgIG11bHRpc2V0PGludD4gczsKICAgIGludCBOID0gQS5zaXplKCk7CiAgICBmb3IoaT0oMCk7aTwoTik7aSsrKXsKICAgICAgcy5pbnNlcnQoQVtpXSk7CiAgICB9CiAgICBzbSA9IDA7CiAgICBmb3IoaT0oMCk7aTwoTik7aSsrKXsKICAgICAgc20gKz0gQVtpXTsKICAgIH0KICAgIHdoaWxlKHNtID4gTil7CiAgICAgIG14ID0gcG9wTGFzdChzKTsKICAgICAgZCA9IG14IC8gKHNtIC0gbXgpOwogICAgICBpZihkID09IDApewogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgICB7CiAgICAgICAgYXV0byBGbWNLcEZtTiA9IChkICogKHNtIC0gbXgpKTsKICAgICAgICBzbSAtPSBGbWNLcEZtTjsKICAgICAgICBteCAtPSBGbWNLcEZtTjsKICAgICAgfQogICAgICBzLmluc2VydChteCk7CiAgICB9CiAgICByZXR1cm4gdHJ1ZTsKICB9Cn0KOwovLyBjTGF5IHZhcnNpb24gMjAyMDAyMTQtMQoKLy8gLS0tIG9yaWdpbmFsIGNvZGUgLS0tCi8vICNkZWZpbmUgbWFpbiBkdW1teV9tYWluCi8vIHt9Ci8vICN1bmRlZiBtYWluCi8vIAovLyBjbGFzcyBTb2x1dGlvbiB7Ci8vIHB1YmxpYzoKLy8gICBib29sIGlzUG9zc2libGUodmVjdG9yPGludD4mIEEpIHsKLy8gICAgIGxsIG14LCBzbSwgZDsKLy8gICAgIG11bHRpc2V0PGludD4gczsKLy8gICAgIGludCBOID0gQS5zaXplKCk7Ci8vIAovLyAgICAgcmVwKGksTikgcy5pbnNlcnQoQVtpXSk7Ci8vICAgICBzbSA9IDA7Ci8vICAgICByZXAoaSxOKSBzbSArPSBBW2ldOwovLyAKLy8gICAgIHdoaWxlKHNtID4gTil7Ci8vICAgICAgIG14ID0gcG9wTGFzdChzKTsKLy8gICAgICAgZCA9IG14IC8gKHNtIC0gbXgpOwovLyAgICAgICBpZihkID09IDApIHJldHVybiBmYWxzZTsKLy8gICAgICAgKHNtLCBteCkgLT0gZCAqIChzbSAtIG14KTsKLy8gICAgICAgcy5pbnNlcnQobXgpOwovLyAgICAgfQovLyAKLy8gICAgIHJldHVybiB0cnVlOwovLyAgIH0KLy8gfTsK