Submission #969695

#TimeUsernameProblemLanguageResultExecution timeMemory
969695vjudge1Global Warming (CEOI18_glo)C++17
100 / 100
44 ms3808 KiB
#include<bits/stdc++.h>
using namespace std;
int arr[200007];
int pref[200007];
int main()
{
    cin.tie(nullptr)->ios::sync_with_stdio(0);

    int n,d;
    cin>>n>>d;
    for(int i=0;i<n;i++)cin>>arr[i];

    vector<int> dp;
    int ans=0;
    for(int i=0;i<n;i++)
    {
        int idx=lower_bound(dp.begin(),dp.end(),arr[i])-dp.begin();
        pref[i]=idx+1;
        if(idx==dp.size())dp.push_back(arr[i]);
        else dp[idx]=arr[i]; 
    }
    ans=dp.size();
    dp.clear();
    for(int i=n-1;i>=0;i--)
    {
        int idx=lower_bound(dp.begin(),dp.end(),-arr[i]+d)-dp.begin();
        ans=max(ans,pref[i]+idx);
        idx = lower_bound(dp.begin(),dp.end(),-arr[i])-dp.begin();
        if(idx==dp.size())dp.push_back(-arr[i]);
        else dp[idx]=-arr[i];
    }

    cout<<ans;
    return 0;
}

Compilation message (stderr)

glo.cpp: In function 'int main()':
glo.cpp:19:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   19 |         if(idx==dp.size())dp.push_back(arr[i]);
      |            ~~~^~~~~~~~~~~
glo.cpp:29:15: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   29 |         if(idx==dp.size())dp.push_back(-arr[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...