Pagini recente » Cod sursa (job #1725667) | Cod sursa (job #651073) | Cod sursa (job #2354018) | Cod sursa (job #2340498) | Cod sursa (job #3184403)
#include <fstream>
#include <vector>
std::ifstream fin("scmax.in");
std::ofstream fout("scmax.out");
int BinSearch (std::vector<int> & v, int x) {
int left = 0, right = v.size () - 1;
while (left <= right) {
int middle = (left + right) >> 1;
if (v[middle] <= x)
left = middle + 1;
else
right = middle - 1;
}
return left;
}
int main () {
int n; fin >> n;
std::vector<int> v(n);
for (int i = 0; i < n; i += 1)
fin >> v[i];
std::vector<int> x; x.emplace_back (v[0]);
for (int i = 1; i < n; i += 1) {
if (v[i] > x[x.size () - 1])
x.emplace_back (v[i]);
else
x[BinSearch (v, v[i])] = v[i];
}
fout << x.size ();
return 0;
}