1 solutions

  • 1
    @ 2025-4-19 16:48:51
    #include <bits/stdc++.h>
    using namespace std;
    int n,a[101],dpa[101],dpb[101],ans1,ans2,ans;
    int main() {
    	scanf("%d",&n);
    	for(int i = 1;i<=n;i++)scanf("%d",&a[i]);
    	for(int i = 1;i<=n;i++){
    		dpa[i] = 1;
    		for(int j = 1;j<i;j++)
    			if(a[j]<a[i])dpa[i] = max(dpa[j]+1,dpa[i]);
    		//ans1 = max(ans,dpa[i]);
    	}
    	
    	for(int i = n;i>=1;i--){
    		dpb[i] = 1;
    		for(int j = n;j>i;j--)
    			if(a[j]<a[i])dpb[i] = max(dpb[j]+1,dpb[i]);
    	}
    	int m=0;
    	for(int i=1;i<=n;i++){
    		m=max(m,dpa[i]+dpb[i]-1);
    	}
    	cout<<n-m;
    	
    	return 0;
    }
    
    • 1

    Information

    ID
    738
    Time
    1000ms
    Memory
    256MiB
    Difficulty
    10
    Tags
    (None)
    # Submissions
    3
    Accepted
    3
    Uploaded By