Submission #920119

#TimeUsernameProblemLanguageResultExecution timeMemory
920119Faisal_SaqibGlobal Warming (CEOI18_glo)C++17
100 / 100
94 ms6800 KiB
#include <iostream> #include <vector> #include <map> #include <algorithm> using namespace std; const int N=2e5+100; int cpy[N],n,x; long long dp[N]; int val[N]; pair<int,int> revert[N]; void GTA6() { for(int i=0;i<=n;i++) { val[i]=-3e9; dp[i]=3e9; } val[0]=3e9; dp[0]=-3e9; for(int i=n-1;i>=0;i--) { cpy[i]=-cpy[i]; int xc=lower_bound(dp,dp+n+1,cpy[i])-dp; revert[i]={xc,val[xc]}; val[xc]=max(-cpy[i],val[xc]); dp[xc]=cpy[i]; cpy[i]=-cpy[i]; } } int main() { cin>>n>>x; for(int i=0;i<n;i++) cin>>cpy[i]; int ans=0; int final=0; GTA6(); for(int i=0;i<=n;i++) dp[i]=3e9; dp[0]=-3e9; for(int i=0;i<n;i++) { cpy[i]-=x; int xc=lower_bound(dp,dp+n+1,cpy[i])-dp; dp[xc]=cpy[i]; val[revert[i].first]=revert[i].second; int s=0; int e=n+1; while(s+1<e) { int mid=(s+e)/2; if(val[mid]>(cpy[i])) s=mid; else e=mid; } final=max(final,xc+s); } cout<<final<<'\n'; return 0; }

Compilation message (stderr)

glo.cpp: In function 'void GTA6()':
glo.cpp:15:10: warning: overflow in conversion from 'double' to 'int' changes value from '-3.0e+9' to '-2147483648' [-Woverflow]
   15 |   val[i]=-3e9;
      |          ^~~~
glo.cpp:18:9: warning: overflow in conversion from 'double' to 'int' changes value from '3.0e+9' to '2147483647' [-Woverflow]
   18 |  val[0]=3e9;
      |         ^~~
glo.cpp: In function 'int main()':
glo.cpp:35:6: warning: unused variable 'ans' [-Wunused-variable]
   35 |  int ans=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...