rt
#include <bits/stdc++.h>
int main() {
std::ios::sync_with_stdio(0);
std::cin.tie(nullptr);
std::array<int, 100003> dd, f;
int n = 1;
for(; std::cin >> dd[n]; ++n) ;
f.fill(0);
--n, f[0] = 0x3f3f3f;
int ans1 = 0, cnt1 = 0;
for(int i = 1; i <= n; ++i)
{
++cnt1;
for(; f[cnt1-1] < dd[i]; --cnt1) ;
f[cnt1] = dd[i], ans1 = std::max(ans1, cnt1);
}
std::cout << ans1 << '\n';
std::vector<int> ds;
ds.push_back(-1);
for(int i = 1; i <= n; ++i)
{
if(ds.back() < dd[i])
ds.push_back(dd[i]);
else
{
int ind = ds.size();
for(; dd[i] <= ds[ind-1]; --ind) ;
ds[ind] = dd[i];
}
}
std::cout << ds.size() - 1;
return 0;
}
提交记录