Submission #760207

# Submission time Handle Problem Language Result Execution time Memory
760207 2023-06-17T09:53:45 Z drdilyor LIS (INOI20_lis) C++17
0 / 100
4000 ms 384 KB
#include<bits/extc++.h>
using namespace std;
namespace pbds = __gnu_pbds;

int main() {
    int n;
    cin >> n;
    vector<pair<int,int>> arr(n);
    for (auto& [p, x] : arr) cin >> p >> x, p--;

    pbds::tree<int, pbds::null_type, less<int>, pbds::rb_tree_tag, pbds::tree_order_statistics_node_update>
        st;
    for (int i = 0; i < n;i++)
        st.insert(i);
    reverse(arr.begin(), arr.end());
    for (auto &[p, x] : arr) {
        auto it = st.find_by_order(p);
        p = *it+1;
        st.erase(it);
    }
    reverse(arr.begin(), arr.end());
    
#ifdef ONPC
    for (auto &[p, x] : arr) {
        cout << p << ' ' << x << endl;
    }

    cout <<"---" << endl;
#endif

    vector<int> pot(n+1);

    for (auto [p, x] : arr) {
        pot[p] = x;
        vector<int> dp(pot.size());
        for (int i = 0; i < (int)pot.size(); i++) {
            for (int j = 0; j < i ;j++) {
                if (pot[j] < pot[i])
                    dp[i] = max(dp[i], dp[j]);
            }
            dp[i]++;
        }
        cout << *max_element(dp.begin(), dp.end())-1 << '\n';
        
    }

    return 0;
}
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 3146 ms 384 KB Output is correct
4 Execution timed out 4080 ms 384 KB Time limit exceeded
5 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Correct 1 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 3146 ms 384 KB Output is correct
4 Execution timed out 4080 ms 384 KB Time limit exceeded
5 Halted 0 ms 0 KB -