#pragma GCC optimize ("Ofast")
#include<bits/stdc++.h>
using namespace std;
#define main dummy_main
int main( ) {
return 0 ;
}
#undef main
int d[ 2001 ] ;
int cnt[ 1001 ] ;
class Solution{
public :
bool uniqueOccurrences( vector< int > & arr) {
int i;
for ( i= ( 0 ) ; i< ( 2001 ) ; i++ ) {
d[ i] = 0 ;
}
for ( i= ( 0 ) ; i< ( 1001 ) ; i++ ) {
cnt[ i] = 0 ;
}
for ( i= ( 0 ) ; i< ( arr.size ( ) ) ; i++ ) {
d[ arr[ i] + 1000 ] ++ ;
}
for ( i= ( 0 ) ; i< ( 2001 ) ; i++ ) {
cnt[ d[ i] ] ++ ;
}
for ( i= ( 1 ) ; i< ( 1001 ) ; i++ ) {
if ( cnt[ i] > 1 ) {
return false ;
}
}
return true ;
}
}
;
// cLay varsion 20191006-1
// --- original code ---
// #define main dummy_main
// {}
// #undef main
//
// int d[2001], cnt[1001];
//
// class Solution {
// public:
// bool uniqueOccurrences(vector<int>& arr) {
// rep(i,2001) d[i] = 0;
// rep(i,1001) cnt[i] = 0;
// rep(i,arr.size()) d[arr[i]+1000]++;
// rep(i,2001) cnt[d[i]]++;
// rep(i,1,1001) if(cnt[i] > 1) return false;
// return true;
// }
// };
I3ByYWdtYSBHQ0Mgb3B0aW1pemUgKCJPZmFzdCIpCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbWFpbiBkdW1teV9tYWluCmludCBtYWluKCl7CiAgcmV0dXJuIDA7Cn0KI3VuZGVmIG1haW4KaW50IGRbMjAwMV07CmludCBjbnRbMTAwMV07CmNsYXNzIFNvbHV0aW9uewogIHB1YmxpYzoKICBib29sIHVuaXF1ZU9jY3VycmVuY2VzKHZlY3RvcjxpbnQ+JiBhcnIpewogICAgaW50IGk7CiAgICBmb3IoaT0oMCk7aTwoMjAwMSk7aSsrKXsKICAgICAgZFtpXSA9IDA7CiAgICB9CiAgICBmb3IoaT0oMCk7aTwoMTAwMSk7aSsrKXsKICAgICAgY250W2ldID0gMDsKICAgIH0KICAgIGZvcihpPSgwKTtpPChhcnIuc2l6ZSgpKTtpKyspewogICAgICBkW2FycltpXSsxMDAwXSsrOwogICAgfQogICAgZm9yKGk9KDApO2k8KDIwMDEpO2krKyl7CiAgICAgIGNudFtkW2ldXSsrOwogICAgfQogICAgZm9yKGk9KDEpO2k8KDEwMDEpO2krKyl7CiAgICAgIGlmKGNudFtpXSA+IDEpewogICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgfQogICAgfQogICAgcmV0dXJuIHRydWU7CiAgfQp9CjsKLy8gY0xheSB2YXJzaW9uIDIwMTkxMDA2LTEKCi8vIC0tLSBvcmlnaW5hbCBjb2RlIC0tLQovLyAjZGVmaW5lIG1haW4gZHVtbXlfbWFpbgovLyB7fQovLyAjdW5kZWYgbWFpbgovLyAKLy8gaW50IGRbMjAwMV0sIGNudFsxMDAxXTsKLy8gCi8vIGNsYXNzIFNvbHV0aW9uIHsKLy8gcHVibGljOgovLyAgIGJvb2wgdW5pcXVlT2NjdXJyZW5jZXModmVjdG9yPGludD4mIGFycikgewovLyAgICAgcmVwKGksMjAwMSkgZFtpXSA9IDA7Ci8vICAgICByZXAoaSwxMDAxKSBjbnRbaV0gPSAwOwovLyAgICAgcmVwKGksYXJyLnNpemUoKSkgZFthcnJbaV0rMTAwMF0rKzsKLy8gICAgIHJlcChpLDIwMDEpIGNudFtkW2ldXSsrOwovLyAgICAgcmVwKGksMSwxMDAxKSBpZihjbnRbaV0gPiAxKSByZXR1cm4gZmFsc2U7Ci8vICAgICByZXR1cm4gdHJ1ZTsKLy8gICB9Ci8vIH07Cg==