제출 #1243229

#제출 시각아이디문제언어결과실행 시간메모리
1243229datluong_04Global Warming (CEOI18_glo)C++20
100 / 100
42 ms6488 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define FOR(i , a , b) for(int i = a ; i <= b ; i++) #define FAST ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); #define maxn 200005 #define REVERSE(i , a , b) for(int i = a; i >= b; i--) ll a[maxn] , b[maxn] , c[maxn]; int l[maxn] , r[maxn]; int main(){ FAST; int n; ll x; cin >> n >> x; FOR(i , 1 , n) cin >> a[i]; FOR(i , 1 , n) b[i] = LLONG_MAX; int ans = 0; FOR(i , 1 , n){ int k = lower_bound(b + 1 , b + n + 1, a[i]) - b; b[k] = a[i]; l[i] = k; } FOR(i , 1 , n) b[i] = LLONG_MAX; FOR(i , 1 , n) c[i] = a[n - i + 1]; FOR(i , 1 , n){ int k = lower_bound(b + 1 , b + n + 1, -c[i] + x) - b; r[n - i + 1] = k; int pos = lower_bound(b + 1 , b + n + 1 , -c[i]) - b; b[pos] = -c[i]; } FOR(i , 1 , n) ans = max(ans , l[i] + r[i] - 1); cout << ans; }
#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...