0
已解决
张瑀涵
高级光能
高级光能
#include<iostream>
using namespace std;
int main()
{
int n,a[5010],i,j,f[5010],max=0,count=0,num[5010]={0};
cin>>n;
for(i=1;i<=n;i++)
cin>>a[i];
for(i=1;i<=n;i++)
{
f[i]=1;
int flag=0;
for(int k=1;k<i;k++)
{
if(a[i]==a[k])
{
flag=k;
}
}
if(a[i-1]==a[i])
num[i]=0;
else
{
for(j=flag+1;j<i;j++)
{
if(a[i]<a[j]&&f[i]<f[j]+1)
{
num[i]=num[j];
f[i]=f[j]+1;
}
else if(a[i]<a[j]&&f[i]==f[j]+1)
{
num[i]+=num[j];
}
}
if(f[i]==1)
num[i]=1;
}
}
for(i=1;i<=n;i++)
{
if(max<f[i])
max=f[i];
}
for(i=1;i<=n;i++)
{
if(f[i]==max)
count+=num[i];
}
cout<<max<<" "<<count;
return 0;
}