Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #define inf 1000*1000*1000 + 1
- #include <cstdio>
- #include <vector>
- #include <algorithm>
- using namespace std;
- vector<int> row;
- int log_find(int l, int r, int a)
- {
- if (l > r)
- return -1;
- int c = (l + r) / 2;
- if (row[c] == a)
- return c;
- else if (row[c] > a)
- {
- return log_find(l, c - 1, a);
- }
- else return log_find(c + 1, r, a);
- }
- int main()
- {
- int N, size = 0;
- int a;
- scanf("%d", &N);
- row.resize(1, -inf);
- row.resize(N + 1, inf);
- for (int i = 0; i < N; i++)
- {
- scanf("%d", &a);
- int id = log_find(1, i, a);
- if (id == -1)
- {
- size++;
- row[size] = a;
- }
- else row[id] = a;
- }
- int k = 0;
- printf("%d", size);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement