Submission #259928

#TimeUsernameProblemLanguageResultExecution timeMemory
259928ly20Global Warming (CEOI18_glo)C++17
100 / 100
99 ms4344 KiB
#include <bits/stdc++.h> using namespace std; const int MAXN = 212345, INF = 2 * 1e9 + 10; stack <pair <int, int> > pl; int v[MAXN], lis1[MAXN], lis2[MAXN]; int main() { int n, t; scanf("%d %d", &n, &t); lis1[0] = -INF; lis2[0] = -INF; for(int i = 1; i <= n; i++) { scanf("%d", &v[i]); lis1[i] = INF; lis2[i] = INF; } int r1 = 0; for(int i = n; i >= 1; i--) { int id = lower_bound(lis1, lis1 + n, -v[i] - t) - lis1; pl.push(make_pair(lis1[id], id)); lis1[id] = -v[i] - t; r1 = max(r1, id); } for(int i = 1; i <= n; i++) { lis1[pl.top().second] = pl.top().first; pl.pop(); int id = lower_bound(lis2, lis2 + n, v[i]) - lis2; lis2[id] = v[i]; int id1 = lower_bound(lis1, lis1 + n, -v[i]) - lis1; r1 = max(r1, id + id1 - 1); //printf("%d %d %d\n", i, id, id1); } printf("%d\n", r1); }

Compilation message (stderr)

glo.cpp: In function 'int main()':
glo.cpp:8:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d", &n, &t);
  ~~~~~^~~~~~~~~~~~~~~~~
glo.cpp:11:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &v[i]);
   ~~~~~^~~~~~~~~~~~~
#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...