Submission #1159286

#TimeUsernameProblemLanguageResultExecution timeMemory
1159286brintonFinancial Report (JOI21_financial)C++20
0 / 100
4094 ms3916 KiB
#include <bits/stdc++.h> using namespace std; int main(){ cin.tie(0); ios_base::sync_with_stdio(0); //start here int N,D; cin >> N >> D; vector<int> v(N); for(auto &i:v)cin >> i; vector<int> LIS; deque<pair<int,int>> dq;// {val,idx}, val遞增,idx遞增 for(int i = 0;i < N;i++){ // set LIS to range min // change mustWalk to deque if(i != 0){// i == 0, dq is empty and there is nothing change while(dq.front().second < i-D)dq.pop_front(); int mustWalk = dq.front().first; for(auto &i:LIS){ i = max(i,mustWalk); } } auto it = lower_bound(LIS.begin(),LIS.end(),v[i]); if(it == LIS.end()){ LIS.push_back(v[i]); }else{ *it = v[i]; } // for(auto i:LIS)cout << i << " ";cout << endl; // push cur to deque while(!dq.empty() && dq.back().second >= v[i]) dq.pop_back(); dq.push_back({v[i],i}); } cout << LIS.size(); }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...