记录编号 394154 评测结果 AAAAAAAAAA
题目名称 最长上升子序列 最终得分 100
用户昵称 GravatarHeHe 是否通过 通过
代码语言 C++ 运行时间 0.011 s
提交时间 2017-04-13 08:13:02 内存使用 0.32 MiB
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;

const int MAXN = 1010;

inline int in(void){
	char tmp = getchar();
	int res = 0, f = 1;
	while(!isdigit(tmp) && tmp != '-')tmp = getchar();
	if(tmp == '-')f = -1, tmp = getchar();
	while(isdigit(tmp))
		res = (res + (res << 2) << 1) + (tmp ^ 48),
		tmp = getchar();
	return res * f;
}

int N, s[MAXN];
int f[MAXN], ans;

int main(){  
#ifndef LOCAL
	freopen("lis1.in", "r", stdin);
	freopen("lis1.out", "w", stdout);
#else
	freopen("test.in", "r", stdin);
#endif
	
	N = in();
	for(int i = 1; i <= N; ++i){
		s[i] = in();
	}

	for(int i = 1; i <= N; ++i){
		f[i] = 1;
		for(int j = 1; j < i; ++j){
			if(s[i] > s[j])f[i] = max(f[i], f[j] + 1);
		}
		ans = max(ans, f[i]);
	}

	printf("%d\n", ans);

	return 0;
}