Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cmath>
- #include <iostream>
- #include <map>
- #include <fstream>
- #include <vector>
- #include <algorithm>
- using namespace std;
- typedef long long ll;
- const int INF = 1000000000;
- int main()
- {
- freopen("input.txt","r",stdin);
- freopen("output.txt","w",stdout);
- ll k, n;
- cin >> n;
- vector <int> d(n+2);
- int p[100010], a[100010];
- for (int i = 0; i < n; i++)
- {
- cin >> a[i];
- }
- d[0] = -INF;
- for (int i=1; i<=n; ++i)
- d[i] = INF;
- for (int i=0; i<n; i++)
- {
- int j = int (upper_bound (d.begin(), d.end(), a[i]) - d.begin());
- if (d[j-1] < a[i] && a[i] < d[j])
- {
- d[j] = a[i];
- p[j] = i;
- }
- }
- for (int i=0; i<=n; i++)
- cout << d[i] << endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement