买股票

 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 }

题目找不到了...

猜你喜欢

转载自www.cnblogs.com/GC-hahaha/p/9458482.html