제출 #1175926

#제출 시각아이디문제언어결과실행 시간메모리
1175926KindaNamelessGlobal Warming (CEOI18_glo)C++20
100 / 100
37 ms3012 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define ld long double void solve() { int N, x; cin >> N >> x; int answer = 1; vector<int> P, S; vector<int> t(N), dp(N); for(int i = 0; i < N; ++i) { cin >> t[i]; auto pos = lower_bound(P.begin(), P.end(), t[i]); dp[i] = pos - P.begin() + 1; answer = max(answer, dp[i]); if(pos == P.end()) { P.push_back(t[i]); } else { P[pos - P.begin()] = t[i]; } } for(int i = N - 1; i >= 0; --i) { auto pos = lower_bound(S.begin(), S.end(), -t[i] + x); int len = pos - S.begin(); answer = max(answer, dp[i] + len); pos = lower_bound(S.begin(), S.end(), -t[i]); if(pos == S.end()) { S.push_back(-t[i]); } else { S[pos - S.begin()] = -t[i]; } } cout << answer; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int tc = 1; //cin >> tc; while(tc--) { solve(); } return 0; }
#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...