Submission #1103983

#TimeUsernameProblemLanguageResultExecution timeMemory
1103983vjudge1Global Warming (CEOI18_glo)C++11
27 / 100
44 ms6108 KiB
/* * AUTHOR : lo0ker * Problem : Global warming * source : */ #include <bits/stdc++.h> using namespace std; using ll = long long; using vi = vector<int>; using pii = pair<int, int>; #define pb push_back #define all(x) begin(x), end(x) #define sz(x) (int) (x).size() const int MOD = 1e9+7; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int n; ll x; cin >> n >> x; vector<ll> v(n); vector<ll> revv(n); for(int i = 0; i < n; i++){ cin >> v[i]; revv[i] = 0-v[i]; } vi pre(n, 0); vi suff(n, 0); vector<ll> temp; temp.push_back(v[0]); pre[0] = 1; for(int i = 1; i < n; i++){ if(v[i] > temp.back()){ temp.push_back(v[i]); } else{ int idx = lower_bound(temp.begin(), temp.end(), v[i]) - temp.begin(); temp[idx] = v[i]; } pre[i] = temp.size(); } temp.clear(); temp.push_back(revv[n-1]); suff[n-1] = 1; for(int i = n-2; i >= 0; i--){ if(revv[i] > temp.back()){ temp.push_back(revv[i]); } else{ int idx = lower_bound(temp.begin(), temp.end(), revv[i]) - temp.begin(); temp[idx] = revv[i]; } suff[i] = temp.size(); } int ans = pre[n-1]; for(int i = 0; i < n-1; i++){ if(abs(v[i] - v[i+1]) < x){ ans = max(ans, pre[i] + suff[i+1]); } } cout << ans; 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...