Submission #1286492

#TimeUsernameProblemLanguageResultExecution timeMemory
1286492HoriaHaivasGlobal Warming (CEOI18_glo)C++20
28 / 100
4 ms584 KiB
#include<bits/stdc++.h>
#define debug(x) cerr << #x << " " << x << "\n"
#define debugs(x) cerr << #x << " " << x << " "
#pragma GCC optimize("Ofast")
#define int long long

using namespace std;

mt19937 rng(chrono::steady_clock::now().time_since_epoch().count());

int range_rng(int l, int r)
{
    return uniform_int_distribution<int>(l,r)(rng);
}

int pref[1005];
int suff[1005];
int a[1005];

signed main()
{
    /*
    ifstream fin("camere.in");
    ofstream fout("camere.out");
    */
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    int n,x,i,j,ans;
    cin >> n >> x;
    for (i=1;i<=n;i++)
         cin >> a[i];
    for (i=1;i<=n;i++)
    {
         pref[i]=1;
         for (j=i-1;j>=1;j--)
         {
              if (a[i]>a[j])
                  pref[i]=max(pref[i],pref[j]+1);
         }
    }
    for (i=n;i>=1;i--)
    {
         suff[i]=1;
         for (j=i+1;j<=n;j++)
         {
              if (a[i]<a[j])
              suff[i]=max(suff[i],suff[j]+1);
         }
    }
    ans=0;
    for (i=1;i<=n;i++)
    {
         for (j=i+1;j<=n;j++)
         {
              if (a[i]-x<a[j])
                  ans=max(ans,pref[i]+suff[j]);
         }
    }
    cout << ans;
    return 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...