#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) { for (int j = 0; j <= i; ++j) { unsigned int sum = 0; if (! P[i - 1]) { for (int k = j; k < i; ++k) { sum += N[i - 1][k]; } } else { for (int k = 0; k < j; ++k) { sum += N[i - 1][k]; } } N[i][j] = sum; } } #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; }