Pagini recente » Cod sursa (job #3228809) | Cod sursa (job #1580986) | Cod sursa (job #3200557) | Cod sursa (job #56300) | Cod sursa (job #2975347)
#include <fstream>
#define dim 1003
#define modulo 9901
using namespace std;
ifstream f("subsiruri.in");
ofstream g("subsiruri.out");
long n, maxim, sol;
long v[dim], l[dim], c[dim], x, poz;
void citire()
{
int i;
f>>n;
for(i=1; i<=n; i++)
f>>v[i];
}
void rezolve()
{
int i, j, k;
l[n]=1;
c[n]=1;
for(k=n; k>=1; k--)
{
maxim=0;
poz=0;
for(i=k+1; i<=n; i++)
if(v[i]>v[k] && l[i]>maxim)
maxim=l[i];
for(j=k+1; j<=n; j++)
if(v[j]>v[k] && maxim==l[j])
{
poz=poz+c[j];
c[j]=c[j]%modulo;
}
l[k]=1+maxim;
if(poz==0)
c[k]=1;
else
c[k]=poz;
}
for(i=1; i<=n; i++)
if(maxim<l[i])
maxim=l[i];
for(i=1; i<=n; i++)
if(maxim==l[i])
{
sol=sol+c[i];
sol=sol%modulo;
}
g<<maxim<<"\n";
g<<sol;
}
int main()
{
citire();
rezolve();
return 0;
}