#include <bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n,wyn; cin>>n; int dp[4][n]; int T[n]; for(int i=0;i<n;i++){ cin>>T[i]; } dp[0][0]=1; dp[1][0]=0; dp[2][0]=0; dp[3][0]=1; for(int i=1;i<n;i++){ dp[0][i]=1+min(dp[2][i-1], dp[3][i-1]); dp[3][i]=1+min(dp[0][i-1], dp[1][i-1]); if(T[i]>T[i-1]){ dp[1][i]=min(dp[2][i-1], dp[3][i-1]); }else{ dp[1][i]=dp[3][i-1]; } if(T[i]<T[i-1]){ dp[2][i]=min(dp[0][i-1], dp[1][i-1]); }else{ dp[2][i]=dp[0][i-1]; } } /* for(int i=0;i<n;i++){ cout<<dp[0][i]<<" "<<dp[1][i]<<" "<<dp[2][i]<<" "<<dp[3][i]<<endl; } */ wyn=dp[0][n-1]; wyn=min(wyn, dp[1][n-1]); wyn=min(wyn, dp[2][n-1]); wyn=min(wyn, dp[3][n-1]); cout<<wyn; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | #include <bits/stdc++.h> using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int n,wyn; cin>>n; int dp[4][n]; int T[n]; for(int i=0;i<n;i++){ cin>>T[i]; } dp[0][0]=1; dp[1][0]=0; dp[2][0]=0; dp[3][0]=1; for(int i=1;i<n;i++){ dp[0][i]=1+min(dp[2][i-1], dp[3][i-1]); dp[3][i]=1+min(dp[0][i-1], dp[1][i-1]); if(T[i]>T[i-1]){ dp[1][i]=min(dp[2][i-1], dp[3][i-1]); }else{ dp[1][i]=dp[3][i-1]; } if(T[i]<T[i-1]){ dp[2][i]=min(dp[0][i-1], dp[1][i-1]); }else{ dp[2][i]=dp[0][i-1]; } } /* for(int i=0;i<n;i++){ cout<<dp[0][i]<<" "<<dp[1][i]<<" "<<dp[2][i]<<" "<<dp[3][i]<<endl; } */ wyn=dp[0][n-1]; wyn=min(wyn, dp[1][n-1]); wyn=min(wyn, dp[2][n-1]); wyn=min(wyn, dp[3][n-1]); cout<<wyn; } |