Submission #1267688

#TimeUsernameProblemLanguageResultExecution timeMemory
1267688julia_08Sandcastle 2 (JOI22_ho_t5)C++20
9 / 100
4 ms840 KiB
#include <bits/stdc++.h>
using namespace std;

using ll = long long;

const int MAXN = 5e4 + 10;

int h[MAXN], nxt[MAXN], pre[MAXN];

int main(){
  cin.tie(0)->sync_with_stdio(0);

  int n, m; cin >> n >> m;

  for(int i=1; i<=m; i++) cin >> h[i];

  ll ans = 0;

  nxt[m] = m;

  for(int i=(m - 1); i>=1; i--){
    if(h[i] > h[i + 1]){
      nxt[i] = nxt[i + 1];
    } else nxt[i] = i;
  }
  
  pre[1] = 1;

  for(int i=2; i<=m; i++){
    if(h[i] > h[i - 1]){
      pre[i] = pre[i - 1];
    } else pre[i] = i;
  }

  for(int i=1; i<=m; i++){
    ans += (nxt[i] - i + 1) + (i - pre[i]);
  }

  cout << ans << "\n";

  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...