結果
| 問題 |
No.711 競技レーティング単調増加
|
| コンテスト | |
| ユーザー |
rapurasu
|
| 提出日時 | 2018-07-13 09:22:15 |
| 言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 741 bytes |
| コンパイル時間 | 1,868 ms |
| コンパイル使用メモリ | 166,276 KB |
| 実行使用メモリ | 6,528 KB |
| 最終ジャッジ日時 | 2024-10-06 20:32:32 |
| 合計ジャッジ時間 | 5,758 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge3 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 24 WA * 17 |
ソースコード
#include<bits/stdc++.h>
using namespace std;
#define FOR(i,a,b) for (int i=(a);i<(b);i++)
#define RFOR(i,a,b) for (int i=(b)-1;i>=(a);i--)
#define REP(i,n) for (int i=0;i<(n);i++)
#define RREP(i,n) for (int i=(n)-1;i>=0;i--)
typedef long long LL;
LL A[200001];
LL B[200011];
int N;
int binary_serach(LL x){
int lb=-1;
int ub=200010;
while(ub-lb>1){
int mid=(ub+lb)/2;
if(B[mid]>x){
ub=mid;
}else{
lb=mid;
}
}
return ub;
}
int main(){
cin>>N;
REP(i,N){
cin>>A[i];
A[i]-=i;
}
REP(i,200011){
B[i]=1e12;
}
REP(i,N){
int b=binary_serach(A[i]);
B[b]=A[i];
/*cout<<"test"<<endl;
REP(j,10){
cout<<B[j]<<endl;
}*/
}
int ans=0;
REP(i,200011){
if(B[i]!=1e12)ans++;
}
cout<<N-ans<<endl;
return(0);
}
rapurasu