Submission #1292309

#TimeUsernameProblemLanguageResultExecution timeMemory
1292309lmduc270410LIS (INOI20_lis)C++20
20 / 100
4091 ms944 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long #define fi first #define se second #define ldb long double #define pii pair<int, int> #define bend(v) v.begin(), v.end() const int N = 2e5 + 5, M = 1e6 + 5; const int mod = 1e9 + 7; const int base = 311; const int inf = INT_MAX; const ll INF = LLONG_MAX; int q; vector<int> vc; int d[N], k; int lis(vector<int> v){ k = 0; for(int x : v){ int j = lower_bound(d + 1, d + k + 1, x) - d; if(j > k) d[++k] = x; else d[j] = x; } return k; } void solve(){ cin>>q; while(q--){ int p, x; cin>>p>>x; vector<int> st; while((int)vc.size() >= p){ st.push_back(vc.back()); vc.pop_back(); } vc.push_back(x); while(!st.empty()){ vc.push_back(st.back()); st.pop_back(); } cout<<lis(vc)<<'\n'; } } signed main(){ // freopen(".inp", "r", stdin); // freopen(".out", "w", stdout); ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int tc = 1; // cin>>tc; while(tc--) solve(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...