Submission #260697

#TimeUsernameProblemLanguageResultExecution timeMemory
260697biggGlobal Warming (CEOI18_glo)C++14
45 / 100
2079 ms7032 KiB
#include<bits/stdc++.h> using namespace std; typedef long long ll; const int MAXN = 2e5 + 10; const ll INF =1e18; ll dp[MAXN], v[MAXN], neg[MAXN]; int ans1[MAXN]; int main(){ int n; ll x; scanf("%d %lld", &n, &x); for(int i = 1; i <= n; i++) scanf("%lld", &v[i]), dp[i] = INF, neg[i] = -v[i]; //dp[0] = INF; int ans = -1; for(int i = 0; i <= n; i++) dp[i] = INF; for(int i = 1; i <= n; i++){ int it1 = lower_bound(dp, dp + n, v[i]) - dp; dp[it1] = v[i]; ans1[i] = it1 +1; ans = max(ans, it1 + 1); } for(int k = -x; k <= x; k++){ for(int i = 0; i <= n; i++) dp[i] = INF; for(int i = n; i; i--){ int it1 = lower_bound(dp, dp + n, neg[i] +k) - dp; int it2 = lower_bound(dp, dp + n, neg[i]) - dp; dp[it2] = neg[i]; ans = max(ans, it1 + ans1[i]); //printf("%\n"); } } printf("%d\n",ans ); }

Compilation message (stderr)

glo.cpp: In function 'int main()':
glo.cpp:11:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %lld", &n, &x);
  ~~~~~^~~~~~~~~~~~~~~~~~~
glo.cpp:12:63: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  for(int i = 1; i <= n; i++) scanf("%lld", &v[i]), dp[i] = INF, neg[i] = -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...