#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; } |
English