#include #include #include #include #include #include #include #include #include using namespace std; ifstream fin("permutation.txt"); #define cin fin unsigned int solve( const vector& P ) { const int NA = P.size() + 1; vector< vector > N( NA, vector(NA, 0) ); N[0][0] = 1; for (int i = 1; i <= P.size(); ++i) { unsigned int sum = 0; if(P[i - 1]) for (int j = 0; j <= i; ++j) { N[i][j] = sum; sum += N[i - 1][j]; } else { N[i][i] = 0; for (int j = i - 1; j >= 0; --j) N[i][j] = sum += N[i - 1][j]; } } #if 0 cout << "---" << endl; for (int i = 0; i <= P.size(); ++i) { for (int j = 0; j <= i; ++j) { cout << N[i][j] << ' '; } cout <>N,N; ) { vector A; while( N-- ) { int a; cin >> a; A.push_back(a); } vector P; for(int i=0; i+1!=A.size(); ++i) P.push_back( A[i] < A[i+1] ); cout << solve(P) << endl; } return 0; }