Submission #739962

#TimeUsernameProblemLanguageResultExecution timeMemory
739962yuhongFinancial Report (JOI21_financial)C++17
0 / 100
54 ms5848 KiB
#include <bits/stdc++.h> 
 #include<ext/pb_ds/assoc_container.hpp> 
 #include<ext/pb_ds/tree_policy.hpp> 
 using namespace std; 
 using namespace __gnu_pbds; 
 template <typename T> 
 using ordered_set = tree<T,null_type,less<T>,rb_tree_tag,tree_order_statistics_node_update>; 
 #define endl '\n' 
 #define ll long long 
 #define pb push_back 
 #define vi vector<int> 
 #define vll vector<long long> 
 #define sz(x) (int)x.size() 
 #define int long long 
 #define all(x) x.begin(),x.end() 
 #define pii pair<int,int> 
 #define piii pair<int,pii> 
 #define rep(i,a,b) for (ll i = a; i<b; i++) 
 #define repo(i,a,b) for (int i = a; i>=b; i--) 
 #define sets(a,b) memset(a, b, sizeof(a))
 #define fi first 
 #define se second 
 int dy[8] = {0,  0, 1, -1, 1, -1 , 1, -1}; 
 int dx[8] = {1, -1, 0,  0, 1, -1, -1,  1}; 
 //int dp[100001][100001]; 
 //int arr[100001];  
 const int MOD = 1e9+7; 
 const int INF = 1e9; 
 const int LOG = 20; 
 const int maxn = 1e5 + 5;
void solve(){
  int n,d;
  cin>>n>>d;
  vi v(n+1);
  for(int i=0;i<n;i++){
    cin>>v[i];
  }
  //subtask 4 , stack
  stack<int> st;
  st.push(v[n-1]);
  int ans = -1;
  for(int i=n-2;i>=0;i--){
    if(st.top()>v[i]){
      st.push(v[i]);
    }
    else if(st.top()<v[i]){
      while(!st.empty())st.pop();
      st.push(v[i]);
    }
    ans = max(ans,(int)st.size());
  }
  cout<<ans<<endl;
}
 int32_t main() { 
 ios_base::sync_with_stdio(false); 
 cin.tie(NULL); 
 cout.tie(NULL); 
  int k = 1;
  while(k--){
    solve();
  }
   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...