D-数列重组_“九韶杯”河科院程序设计协会第一届程序设计竞赛 (nowcoder.com)
#include<bits/stdc++.h>
using namespace std;
int s[11]={-0x3f3f3f3f,2,3,3,3,5,6,6,7,7,8};
int main(){
long long res=0;
do{
int flag=0,cnt=0;
for(int i=2;i<=10;i++){
if(s[i]>s[i-1]){
if(flag==-1) flag=0,cnt++;
else flag=1;
}
else if(s[i]<s[i-1]){
if(flag==1) flag=0,cnt++;
else flag=-1;
}
}
if(cnt<=2) res++;
}while(next_permutation(s+1,s+11));
printf("%lld\n",res);
}