- #include<bits/stdc++.h> 
- #define fri(i,n) for(int i=0;i<n;i++) 
- #define fr(i,a,b) for(int i=a;i<=b;i++) 
- #define ol(v) v.begin(),v.end() 
- #define forc(v) for(auto it:v) 
- #define se second 
- #define fi first 
- #define pb push_back 
- #define pf push_front 
- #define MX 1e18 
- #define MN -MX 
-   
- using namespace std; 
- typedef long long ll; 
- typedef long double ld; 
-   
- template <typename T> istream&operator>>(istream &inp, vector<T> &vec){ 
- 	fri(i,vec.size()) inp>>vec[i]; 
- 	return inp; 
- } 
-   
- template <typename T> ostream&operator<<(ostream &oup, vector<T> vec){ 
- 	forc(vec) oup<<it<<" "; 
- 	oup<<"\n"; 
- 	return oup; 
- } 
-   
- int arr[100005]; 
-   
- int main(){ 
- 	ios::sync_with_stdio(false); 
- 	#ifdef DBG 
- 		freopen("in", "r", stdin); 
- 	#endif 
- 	int mx = -1; 
- 	fill(arr, arr+100005, 0); 
- 	int n; 
- 	cin>>n; 
- 	fri(i,n){int k; cin>>k; arr[k]++; mx = max(mx, k);} 
- 	//arr[2] = 2*arr[2]; 
- 	for(int i = 2;i<=mx; i++) arr[i] = max(i*arr[i]+arr[i-2], arr[i-1]); 
- 	cout<<arr[mx]<<"\n"; 
-   
- 	return 0; 
- } 
-   
-   
-   
-   
-   
- // 
				I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBmcmkoaSxuKSBmb3IoaW50IGk9MDtpPG47aSsrKQojZGVmaW5lIGZyKGksYSxiKSBmb3IoaW50IGk9YTtpPD1iO2krKykKI2RlZmluZSBvbCh2KSB2LmJlZ2luKCksdi5lbmQoKQojZGVmaW5lIGZvcmModikgZm9yKGF1dG8gaXQ6dikKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIHBmIHB1c2hfZnJvbnQKI2RlZmluZSBNWCAxZTE4CiNkZWZpbmUgTU4gLU1YCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKdHlwZWRlZiBsb25nIGRvdWJsZSBsZDsKCnRlbXBsYXRlIDx0eXBlbmFtZSBUPiBpc3RyZWFtJm9wZXJhdG9yPj4oaXN0cmVhbSAmaW5wLCB2ZWN0b3I8VD4gJnZlYyl7CglmcmkoaSx2ZWMuc2l6ZSgpKSBpbnA+PnZlY1tpXTsKCXJldHVybiBpbnA7Cn0KCnRlbXBsYXRlIDx0eXBlbmFtZSBUPiBvc3RyZWFtJm9wZXJhdG9yPDwob3N0cmVhbSAmb3VwLCB2ZWN0b3I8VD4gdmVjKXsKCWZvcmModmVjKSBvdXA8PGl0PDwiICI7CglvdXA8PCJcbiI7CglyZXR1cm4gb3VwOwp9CgppbnQgYXJyWzEwMDAwNV07CgppbnQgbWFpbigpewoJaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwoJI2lmZGVmIERCRwoJCWZyZW9wZW4oImluIiwgInIiLCBzdGRpbik7CgkjZW5kaWYKCWludCBteCA9IC0xOwoJZmlsbChhcnIsIGFycisxMDAwMDUsIDApOwoJaW50IG47CgljaW4+Pm47CglmcmkoaSxuKXtpbnQgazsgY2luPj5rOyBhcnJba10rKzsgbXggPSBtYXgobXgsIGspO30KCS8vYXJyWzJdID0gMiphcnJbMl07Cglmb3IoaW50IGkgPSAyO2k8PW14OyBpKyspIGFycltpXSA9IG1heChpKmFycltpXSthcnJbaS0yXSwgYXJyW2ktMV0pOwoJY291dDw8YXJyW214XTw8IlxuIjsKCQoJcmV0dXJuIDA7Cn0KCgoKCgovLw==