记录编号 418898 评测结果 AAAAAAAAAA
题目名称 低价购买 最终得分 100
用户昵称 GravatarFisher. 是否通过 通过
代码语言 C++ 运行时间 0.216 s
提交时间 2017-07-01 17:08:49 内存使用 0.47 MiB
显示代码纯文本
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int n;
long long f[5010][4];
int main(){
	freopen("djgm.in","r",stdin);
	freopen("djgm.out","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		scanf("%d",&f[i][1]);
	}
	long long maxx=1;
	for(int i=1;i<=n;i++){
		f[i][2]=1; 
		for(int j=1;j<i;j++){
			if(f[j][1]>f[i][1]&&f[j][2]>=f[i][2]){
				f[i][2]=f[j][2]+1;
			}
		}
		if(f[i][2]==1)f[i][3]=1; 
		for(int j=1;j<i;j++){
			if(f[j][2]==f[i][2]-1&&f[i][1]<f[j][1]){
				f[i][3]+=f[j][3]; 
			} 
			else
			if(f[j][2]==f[i][2]&&f[j][1]==f[i][1]){
				f[j][3]=0; 
			} 
		}
		maxx=max(maxx,f[i][2]); 
	}
	long long ans=0;
	for(int i=1;i<=n;i++){
		//cout<<f[i][1]<<" "<<f[i][2]<<" "<<f[i][3]<<endl; 
		if(f[i][2]==maxx)ans+=f[i][3];
	} 
	cout<<maxx<<" "<<ans<<endl;
	return 0;
}