Submission #925424

#TimeUsernameProblemLanguageResultExecution timeMemory
925424De3b0oFinancial Report (JOI21_financial)C++14
5 / 100
42 ms9800 KiB
#include<bits/stdc++.h>
#define ll long long
#define F first
#define S second
#define in insert
#define er erase
#define pb push_back
#define ppb pop_back()
#define ph push
#define pp pop()
#define d3 ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define cans cout << ans << "\n";
#define yes cout << "Yes" << "\n";
#define no cout << "No" << "\n";
#define pll pair<ll,ll>
#define lin cout << "\n";
#define sqr 340
#define mod 1000000007

using namespace std;

int main()
{
    d3
    ll n , d;
    cin >> n >> d;
    ll a[n];
    for(int i = 0 ; n>i ; i++)
        cin >> a[i];
    if(d==1)
    {
        ll mx = 0;
        ll ans = 0;
        for(int i = 0 ; n>i ; i++)
        {
            if(a[i]>mx)
                ans++;
            mx=max(mx,a[i]);
        }
        cans
        return 0;
    }
    if(d==n)
    {
        vector<ll> ans;
        for(int i = 0 ; n>i ; i++)
        {
            auto it = lower_bound(ans.begin(),ans.end(),a[i]);
            if(it==ans.end())
                ans.pb(a[i]);
            else
                *it = a[i];
        }
        cout << ans.size();
        return 0;
    }
    ll ans[n];
    ans[0]=1;
    for(int i = 1 ; n>i ; i++)
    {
        ll mx = 0;
        ll j = i-d;
        if(j<0)
            j=0;
        ll h = i-1;
        while(h>=j)
        {
            if(a[h]<a[i])
                mx=max(mx,ans[h]);
            if(a[h]<a[i])
                j=h-d;
            if(j<0)
                j=0;
            h--;
        }
        ans[i]=mx+1;
    }
    ll mx = 0;
    for(int i = 0 ; n>i ; i++)
        mx=max(mx,ans[i]);
    cout << mx;
}
#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...