1 solutions

  • 0
    @ 2025-11-5 17:27:43

    C++ :

    #include <cstdio>
     
    #define MAXN 1005UL
     
    #define Max(a,b) ((a)>(b)?(a):(b))
     
    using namespace std;
     
    int n;
    int a[MAXN];
    int f[MAXN];
     
    int main(){
    	int i,j;
    	int ans=0;
    	scanf("%d",&n);
    	for(i=1;i<=n;++i)
    		scanf("%d",&a[i]);
    	for(i=1;i<=n;++i){
    		if(a[i]>i)
    			continue;
    		f[i]=1;
    		for(j=1;j<=i;++j){
    			if(f[j]+1>f[i]&&i-j>=a[i]-a[j]&&a[i]>a[j])
    				f[i]=f[j]+1;
    		}
    		ans=Max(ans,f[i]);
    	}
    	printf("%d",ans);	
    }
    
    • 1

    Information

    ID
    18453
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By