88分求助
查看原帖
88分求助
472945
武怡雯_楼主2021/9/13 18:46
#include<iostream>
using namespace std;

int i , j , k , x , n ,maxx , m;
int a[1000000] , b[1000000] , h[1000000];

int main()
{
	int i = 0;
	while(cin >> a[i]) {
		maxx = 0;
		for(int j = 1; j <= i - 1; ++j) {
			if(a[j] >= a[i]) {
			    if(b[j] > maxx) maxx = b[j];
			}
		}
		b[i] = maxx + 1;
		if(b[i] > m) m = b[i];
		x = 0;
		for(int k = 1; k <= n; ++k) {
			if(h[k] >= a[i]) {
				if(x == 0) x = k;
			} else if(h[k] < h[x]) x = k;
		}
		if(x == 0) {
			n++; x = n;
		}
		h[x] = a[i]; i++;
 	}
 	cout << m << endl << n <<endl;
 	return 0;
}
2021/9/13 18:46
加载中...