2007年 日本情報オリンピック春合宿OJから、その提出コードの解答例です。
AtCoderとは、コンテストを通じて、プログラミングやアルゴリズムを学習するサービスです。
atcoder.jp
プログラミングコンテストとは、「与えられた問題をいかに素早く、正確に」解くことができるかを競うものです。
「競技プログラミング」を略して、「競プロ」などと呼ばれています。
#building - ビルの飾り付け (Building)
https://www.ioi-jp.org/camp/2007/2007-sp-tasks/2007-sp-day2_21.pdf
僕が作成、提出したコードは、以下のとおりです。
/* AtCoder Problems in C++ #building - ビルの飾り付け (Building) https://www.ioi-jp.org/camp/2007/2007-sp-tasks/2007-sp-day2_21.pdf 提出コードの解答例 https://neguse-atama.hatenablog.com */ #include<bits/stdc++.h> using namespace std; using ll=long long; const ll INF=1000000000000; int main(void){ ll n; cin>>n; vector<ll> a(n); for(ll i=0;i<n;i++){ cin>>a[i]; } vector<ll> v(n+1,INF); for(ll i=0;i<n;i++){ *lower_bound(v.begin(),v.end(),a[i])=a[i]; } cout<<lower_bound(v.begin(),v.end(),INF)-v.begin()<<endl; return 0; }