제출 #846831

#제출 시각아이디문제언어결과실행 시간메모리
846831AbitoFinancial Report (JOI21_financial)C++17
12 / 100
66 ms14672 KiB
#include <bits/stdc++.h> #define F first #define S second #define pb push_back #define ppb pop_back #define ep insert #define endl '\n' #define elif else if #define pow pwr #define sqrt sqrtt #define int long long #define y1 YONE typedef unsigned long long ull; using namespace std; const int N=3e5+5; int a[N],n,d,bit[N],dp[N],b[N]; void edit(int x){ while (x<=n){ bit[x]++; x+=x&-x; }return; }int query(int x){ int y=0; while (x){ y+=bit[x]; x-=x&-x; }return y; } int32_t main(){ ios_base::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL); cin>>n>>d; for (int i=1;i<=n;i++) cin>>a[i]; if (d==1){ stack<int> s; for (int i=1;i<=n;i++){ while (!s.empty()){ if (a[s.top()]<a[i]) s.pop(); else{ b[i]=s.top(); break; } }s.push(i); } int ans=0; for (int i=n;i;i--){ edit(b[i]+1); ans=max(ans,query(i)); }cout<<ans<<endl; } 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...