A - 山の眺め / Mountain View Editorial by kyopro_friends

(余談)愚直で通す

初心者の方はこの記事を参考にしないでください。

\(\Omega(N^2)\) 解法を実行時間に間に合わせることは実行時間制限に間に合わせることは困難と説明しましたが、実際にはかなり頑張ると間に合わせることができます。

実装例 (C++)

# pragma GCC target("avx2")
# pragma GCC optimize("O3")
#include<bits/stdc++.h>
using namespace std;

int main(){
  ios::sync_with_stdio(false);
  std::cin.tie(nullptr);
  
  int n;
  cin >> n;
  vector<int>h(n);
  for(int i=0; i<n; i++) cin >> h[i];

  vector<int>ans;
  for(int i=0; i<n; i++){
    if(all_of(h.begin(), h.begin()+i, [&](int x){return x<h[i];})){
      ans.push_back(i+1);
    }
  }

  int k = ans.size();
  for(int i=0; i<k; i++){
    cout << ans[i];
    if(i == k-1){
      cout << endl;
    }else{
      cout << ' ';
    }
  }
}

posted:
last update: