Pagini recente » Cod sursa (job #1087821) | Cod sursa (job #1634790) | Cod sursa (job #2802907) | Cod sursa (job #342222) | Cod sursa (job #1366823)
#include <stdio.h>
int best[1001],nr[1001],cat[1001];
int maxim=0,ct=0;
int main()
{
freopen ("subsiruri.in","r",stdin);
freopen ("subsiruri.out","w",stdout);
int n;
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&nr[i]);
best[1]=1;
maxim=1;
ct=1;
cat[1]=1;
int pos=0;
for(int i=2;i<=n;i++)
{
int maxt=0,cate=1;
for(int j=i-1;j>=1;j--)
{
if(nr[i]>=nr[j])
{
if(maxt<best[j])
{
maxt=best[j];
cate=cat[j];
}
else if(maxt==best[j])
{
cate+=cat[j];
cate%=9901;
}
}
}
cat[i]=cate;
cat[i]%=9901;
best[i]=maxt+1;
if(maxim<best[i])
{
maxim=best[i];
}
}
// for(int i=1;i<=n;i++) printf("%d ",best[i]);
//printf("\n");
//for(int i=1;i<=n;i++) printf("%d ",cat[i]);
//printf("\n");
long long sum=0;
for(int i=1;i<=n;i++)
{
if(maxim==best[i])
{
sum+=cat[i];
}
}
printf("%d\n%d\n",maxim,sum);
}