154622025-02-19 19:03:47horkaTűzijátékcpp17Elfogadva 50/5021ms2100 KiB
#include <bits/stdc++.h>
using namespace std;

int main()
{
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    int n,s,t; cin>>n>>s>>t;
    vector<int> v(n+1),dp(n+1),lep(n+1),el(n+1);
    for(int i=1; i<=n; i++)
    {
        cin>>v[i];
    }
    for(int i=1; i<=n; i++)
        if(v[i]>=t) el[i]=upper_bound(v.begin(),v.end(),v[i]-t)-v.begin()-1;
    for(int i=1; i<=n; i++)
    {
        dp[i]=dp[i-1];
        if((el[i]>=s || i<=s) && (dp[el[i]]+1>dp[i] || i==s))
        {
            dp[i]=dp[el[i]]+1;
            lep[i]=1;
        }
    }
    vector<int> ans;
    int i=n;
    while(i>0)
    {
        if(lep[i])
        {
            ans.push_back(i);
            i=el[i];
        }
        else i--;
    }
    cout<<dp[n]<<"\n";
    reverse(ans.begin(),ans.end());
    for(int i:ans)
        cout<<i<<" ";
    cout<<"\n";
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base50/50
1Elfogadva0/01ms316 KiB
2Elfogadva0/021ms2012 KiB
3Elfogadva2/21ms316 KiB
4Elfogadva2/21ms500 KiB
5Elfogadva2/21ms316 KiB
6Elfogadva2/21ms316 KiB
7Elfogadva2/21ms316 KiB
8Elfogadva2/21ms316 KiB
9Elfogadva2/22ms316 KiB
10Elfogadva2/23ms560 KiB
11Elfogadva2/23ms564 KiB
12Elfogadva2/24ms704 KiB
13Elfogadva2/24ms712 KiB
14Elfogadva2/24ms564 KiB
15Elfogadva3/34ms564 KiB
16Elfogadva3/37ms928 KiB
17Elfogadva3/38ms1080 KiB
18Elfogadva3/310ms1220 KiB
19Elfogadva3/321ms2008 KiB
20Elfogadva3/321ms2100 KiB
21Elfogadva4/421ms2012 KiB
22Elfogadva4/420ms2008 KiB