Submission #95188

#TimeUsernameProblemLanguageResultExecution timeMemory
95188Retro3014Global Warming (CEOI18_glo)C++17
100 / 100
73 ms4712 KiB
#include <iostream> #include <stdio.h> #include <algorithm> #include <vector> using namespace std; #define MAX_N 200000 int N, D; vector<int> v; vector<int> stack; int num[MAX_N+1]; int ans = 0; int main(){ scanf("%d %d", &N, &D); int x; for(int i=0; i<N; i++){ scanf("%d", &x); v.push_back(x); } for(int i=v.size()-1; i>=0; i--){ if(stack.empty()){ num[i] = 1; stack.push_back(v[i]); }else{ if(stack.back()>v[i]){ stack.push_back(v[i]); num[i] = stack.size(); }else{ int s = 0, e = stack.size()-1, m; while(s<e){ m = (s+e)/2; if(stack[m]>v[i]) s = m+1; else e = m; } num[i] = s+1; stack[s] = v[i]; } } } stack.clear(); for(int i=0; i<v.size(); i++){ int s = 0, e = stack.size(), m; while(s<e){ m=(s+e)/2; if(stack[m]<v[i]+D) s = m+1; else e = m; } //cout<<i<<" "<<s<<" "<<num[i]<<endl; ans = max(ans, s+num[i]); if(stack.empty()){ stack.push_back(v[i]); }else{ if(stack.back()<v[i]) stack.push_back(v[i]); else{ s = 0; e = stack.size()-1; while(s<e){ m = (s+e)/2; if(stack[m]<v[i]) s = m+1; else e = m; } stack[s] = v[i]; } } } printf("%d", ans); return 0; }

Compilation message (stderr)

glo.cpp: In function 'int main()':
glo.cpp:43:16: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i=0; i<v.size(); i++){
               ~^~~~~~~~~
glo.cpp:17:7: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
  scanf("%d %d", &N, &D);
  ~~~~~^~~~~~~~~~~~~~~~~
glo.cpp:20:8: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result]
   scanf("%d", &x); v.push_back(x);
   ~~~~~^~~~~~~~~~
#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...