제출 #1240526

#제출 시각아이디문제언어결과실행 시간메모리
1240526skibidi123Financial Report (JOI21_financial)C++20
14 / 100
4091 ms8868 KiB
#include <bits/stdc++.h> #define long long long using namespace std; multiset<pair<int,int>> m; int main(){ int n,d;cin>>n>>d; vector<int>a(n); for(int&i:a)cin>>i; const pair<int,int> oo={0,0}; vector<pair<int,int>> f(n,oo), q(n,oo); // base f[0]={-1,a[0]}; q[0]=f[0]; m.insert(f[0]); m.insert(q[0]); int ans=1; for(int i=1;i<n;i++){ if(i>d){ int j=i-d-1; m.erase(m.find(f[j])); m.erase(m.find(q[j])); } f[i]=*m.begin(); if(a[i]>f[i].second){ f[i].first--; f[i].second=a[i]; } ans=max(ans,-f[i].first); m.insert(f[i]); q[i]={-1,a[i]}; for(auto it=m.begin();it!=m.end();++it) if(it->second<a[i]){ q[i]=*it; q[i].first--; q[i].second=a[i]; break; } ans=max(ans,-q[i].first); m.insert(q[i]); } cout<<ans; return 0; }
#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...