Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ////////////////////////////////////////////////////////////////////////////////////////////////
- // Andrey Odintsov
- #include <bits/stdc++.h>
- using namespace std;
- #define mp make_pair
- #define pb push_back
- #define FAST_IO ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0)
- #define FILE_IO(x) freopen((string(x) + ".in").c_str(), "r", stdin); freopen((string(x) + ".out").c_str(), "w", stdout)
- #define f first
- #define s second
- #define x1 x1qwer
- #define y1 y1qwer
- #define foreach(it, v) for (auto it : v)
- #define rep(it, n) for (int it = 0; it < n; ++it)
- #define forin(it, l, r) for (int it = l; it < r; ++it)
- #define all(x) x.begin(), x.end()
- #define sqr(x) ((x) * (x))
- typedef long long ll;
- typedef unsigned long long ull;
- typedef long double ld;
- typedef pair<int, int> pii;
- typedef pair<ll, ll> pll;
- const double DINF = numeric_limits<double>::infinity();
- const int MOD = 1e9 + 7;
- const double EPS = 1e-7;
- ll gcd(ll a, ll b) { return b ? gcd(b, a % b) : a; }
- mt19937 mmtw(MOD);
- ll rnd(ll x, ll y) { static uniform_int_distribution<ll> d; return d(mmtw) % (y - x + 1) + x; }
- template <class T> T binpow(T n, T k) { if (k == 1) return n; if (k & 1) return binpow(n, k - 1) * n; T a = binpow(n, k / 2); return a * a; }
- template <class T> T fact(T n) { if (n == 1) return 1; return n * fact(n - 1); }
- ////////////////////////////////////////////////////////////////////////////////////////////////
- const int MAXN = 5005;
- int n;
- int a[MAXN];
- int main() {
- cin >> n;
- rep(i, n) {
- cin >> a[i];
- }
- sort(a, a + n);
- multiset<int> s;
- s.insert(a[n - 1]);
- for (int i = n - 2; i >= 0; --i) {
- if (s.upper_bound(a[i]) == s.end()) {
- s.insert(a[i]);
- } else {
- s.erase(s.upper_bound(a[i]));
- s.insert(a[i]);
- }
- }
- cout << s.size() << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement