fork download
  1. #include<bits/stdc++.h>
  2. #define fri(i,n) for(int i=0;i<n;i++)
  3. #define fr(i,a,b) for(int i=a;i<=b;i++)
  4. #define ol(v) v.begin(),v.end()
  5. #define forc(v) for(auto it:v)
  6. #define se second
  7. #define fi first
  8. #define pb push_back
  9. #define pf push_front
  10. #define MX 1e18
  11. #define MN -MX
  12.  
  13. using namespace std;
  14. typedef long long ll;
  15. typedef long double ld;
  16.  
  17. template <typename T> istream&operator>>(istream &inp, vector<T> &vec){
  18. fri(i,vec.size()) inp>>vec[i];
  19. return inp;
  20. }
  21.  
  22. template <typename T> ostream&operator<<(ostream &oup, vector<T> vec){
  23. forc(vec) oup<<it<<" ";
  24. oup<<"\n";
  25. return oup;
  26. }
  27.  
  28. int arr[100005];
  29.  
  30. int main(){
  31. ios::sync_with_stdio(false);
  32. #ifdef DBG
  33. freopen("in", "r", stdin);
  34. #endif
  35. int mx = -1;
  36. fill(arr, arr+100005, 0);
  37. int n;
  38. cin>>n;
  39. fri(i,n){int k; cin>>k; arr[k]++; mx = max(mx, k);}
  40. //arr[2] = 2*arr[2];
  41. for(int i = 2;i<=mx; i++) arr[i] = max(i*arr[i]+arr[i-2], arr[i-1]);
  42. cout<<arr[mx]<<"\n";
  43.  
  44. return 0;
  45. }
  46.  
  47.  
  48.  
  49.  
  50.  
  51. //
Success #stdin #stdout 0s 15624KB
stdin
9
1 2 1 3 2 2 2 2 3
stdout
10