제출 #940022

#제출 시각아이디문제언어결과실행 시간메모리
940022vjudge1Global Warming (CEOI18_glo)C++17
10 / 100
89 ms8252 KiB
#include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define all(x) x.begin(), x.end()
#define rall(x) x.rbegin(), x.rend()
#define fr first
#define sc second
#define ll long long
#define int long long
const int N=1e5+5;
void solve(){
	int n,x;cin>>n>>x;
	vector<int> a(n),pref(n+1),suf(n+1);
	for(int i=0;i<n;i++)
		cin>>a[i];
	vector<int> lis(n,1e10),lds(n,1e10);
	int ans=0;
	for(int i=0;i<n;i++){
		int A=lower_bound(all(lis),a[i]+x)-lis.begin();
		int B=lower_bound(all(lds),a[i]+x)-lds.begin();
		if(lds[max(A,B)]>a[i]+x)
			lds[max(A,B)]=a[i]+x;
		suf[i]=max(A,B)+1;
		int it=lower_bound(all(lis),a[i])-lis.begin();
		if(lis[it]>a[i])
			lis[it]=a[i];
		pref[i]=it+1;
		
		ans=max(ans,max(suf[i],pref[i]));
	}
	/*for(int i=0;i<n;i++)
		cout<<pref[i]<<' ';
	cout<<endl;
	for(int i=0;i<n;i++)
		cout<<suf[i]<<' ';
	cout<<endl;*/
	
	cout<<ans<<endl;
}
main(){
    int T=1;
    //cin>>T;
    while(T--){
        solve();
    }
}
/*
12 2
2 3 3 8 1 5 6 7 8 3 5 4
2 1
2 7
3 4
4 7
7 6
5 6
6 8
6 9
7 10
10 11
10 12
*/

컴파일 시 표준 에러 (stderr) 메시지

glo.cpp:40:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   40 | main(){
      | ^~~~
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...