#include <bits/stdc++.h>
using namespace std;
int lengthOfLIS(vector<int>& nums) {
vector<int>dp(n,1);
for(int i=1;i<n;i++){
for(int j=0;j<i;j++){
if(nums[j]<nums[i]){
dp[i]= (dp[j]+1>dp[i])?dp[j]+1:dp[i];
}
}
}
return *max_element(dp.begin(),dp.end());
}
//follow-up: total no of increasing sequences
int totalLIS(vector<int>& nums, int n){
vector<int>dp(n,1);int ct=dp[0];
for(int i=1;i<n;i++){
for(int j=0;j<i;j++){
if(nums[j]<nums[i]){
dp[i]= dp[j]+1;
}
}
ct+=nums[i];
}
return ct;
}
//second follow-up: have to learn segment trees
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbGVuZ3RoT2ZMSVModmVjdG9yPGludD4mIG51bXMpIHsKICAgICAgICB2ZWN0b3I8aW50PmRwKG4sMSk7CiAgICAgICAgZm9yKGludCBpPTE7aTxuO2krKyl7CiAgICAgICAgICAgIGZvcihpbnQgaj0wO2o8aTtqKyspewogICAgICAgICAgICAgICAgaWYobnVtc1tqXTxudW1zW2ldKXsKICAgICAgICAgICAgICAgICAgICBkcFtpXT0gKGRwW2pdKzE+ZHBbaV0pP2RwW2pdKzE6ZHBbaV07CiAgICAgICAgICAgICAgICB9IAogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHJldHVybiAqbWF4X2VsZW1lbnQoZHAuYmVnaW4oKSxkcC5lbmQoKSk7CiAgICB9CiAgICAKICAgIC8vZm9sbG93LXVwOiB0b3RhbCBubyBvZiBpbmNyZWFzaW5nIHNlcXVlbmNlcwogICAgCiBpbnQgdG90YWxMSVModmVjdG9yPGludD4mIG51bXMsIGludCBuKXsKIAkgdmVjdG9yPGludD5kcChuLDEpO2ludCBjdD1kcFswXTsKICAgICAgICBmb3IoaW50IGk9MTtpPG47aSsrKXsKICAgICAgICAgICAgZm9yKGludCBqPTA7ajxpO2orKyl7CiAgICAgICAgICAgICAgICBpZihudW1zW2pdPG51bXNbaV0pewogICAgICAgICAgICAgICAgICAgIGRwW2ldPSBkcFtqXSsxOwogICAgICAgICAgICAgICAgfSAKICAgICAgICAgICAgfQogICAgICAgICAgICBjdCs9bnVtc1tpXTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGN0OwogfQogLy9zZWNvbmQgZm9sbG93LXVwOiBoYXZlIHRvIGxlYXJuIHNlZ21lbnQgdHJlZXMKICAgIA==