Submission #785335

#TimeUsernameProblemLanguageResultExecution timeMemory
785335devariaotaGlobal Warming (CEOI18_glo)C++17
5 / 100
2079 ms4268 KiB
#include <bits/stdc++.h> using namespace std; #define int long long int n, x, t[200005], ans = 0; // int binser(set<int, greater<int>> memo, int find) { // } void solve(int l, int r, int s) { // cout << l << " " << r << " " << s << endl; map<int, int> maks; set<int, greater<int>> memo; set<int>::iterator it; int cur; for (int i = l; i <= r; i++) { t[i] += s; } stack<int> st; int temp; for (int i = 1; i <= n; i++) { while (!st.empty()) { if (t[i] <= st.top()) st.pop(); else break; } st.push(t[i]); // pq.push(t[i]); memo.insert(t[i]); temp = st.size(); maks[t[i]] = max(maks[t[i]], temp); // int cur = pq.top(); // pq.pop(); // maks[t[i]] = max(maks[t[i]], maks[pq.top()]+1); // pq.push(cur); if (memo.size() > 1) { // it = memo.begin(); // it++; // cur = *it; // maks[t[i]] = max(maks[t[i]], maks[cur]+1); // binser // cout << "set : "; for (it = memo.begin(); it != memo.end(); it++) { if ((*it) == t[i]) break; // cout << *it << " "; } // cout << endl; // it++; it++; if (it != memo.end()) { maks[t[i]] = max(maks[t[i]], maks[*it]+1); } // cout << cur << endl; // maks[t[i]] = max(maks[t[i]], maks[cur]+1); } temp = maks[t[i]]; // cout << i << " " << t[i] << " " << temp << endl; ans = max(temp, ans); } for (int i = l; i <= r; i++) { t[i] -= s; } } signed main() { cin >> n >> x; for (int i = 1; i <= n; i++) cin >> t[i]; if (x == 0) { solve(1, n, 0); cout << ans << endl; return 0; } for (int l = 1; l <= n; l++) { for (int r = l; r <= n; r++) { for (int s = -x; s <= x; s++) { solve(l, r, s); } } } cout << ans << endl; }

Compilation message (stderr)

glo.cpp: In function 'void solve(long long int, long long int, long long int)':
glo.cpp:17:7: warning: unused variable 'cur' [-Wunused-variable]
   17 |   int cur;
      |       ^~~
#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...