1 #include<bits/stdc++.h> 2 using namespace std; 3 int n; 4 int f[100][3];//f[i][1]:lenth f[i][2]:num 5 bool p[100]; 6 int main(){ 7 8 scanf("%d", &n); 9 f[1][2] = 1;// 10 f[1][1] = 1;// 11 for(int i = 1; i <= n; ++i) scanf("%d", &f[i][0] ); 12 for(int i = 2; i <= n+1; ++i){ 13 f[i][1] = 1;// 14 f[i][2] = 1;//这四个地方都要记得啊 不然就死的很惨了 15 for(int j = i-1; j >= 1; --j) if( f[j][0] > f[i][0] ){ 16 if( f[j][1] + 1 == f[i][1] && ! p[ f[j][0] ]){ 17 f[i][2] += f[j][2]; 18 p[ f[j][0] ] = true; 19 } 20 else if( f[j][1] + 1 > f[i][1] ){ 21 f[i][1] = f[j][1] + 1; 22 memset( p ,0 ,sizeof(p) ); 23 p[ f[j][0] ] = true; 24 f[i][2] = f[j][2]; 25 } 26 } 27 } 28 printf("%d %d\n",f[i][1] - 1 ,f[i][2]);//因为算到了n+1项所以要减去长度1呀 29 return 0; 30 }
题目找不到了...