Pagini recente » Cod sursa (job #2667940) | Cod sursa (job #2195518) | Profil Mititiuc_Catalin_321CB | Cod sursa (job #1348968) | Cod sursa (job #1384843)
#include <iostream>
#include <fstream>
#define MOD 9901
using namespace std;
int v[100001],nr[100001],lung[100001];
ifstream in("subsiruri.in");
ofstream out("subsiruri.out");
int main()
{
int i,j,n,lmax,max1=0,numar,max2=0,rez=0;
in>>n;
for(i=1; i<=n; i++)
in>>v[i];
lung[1] = 1;
nr[1] = 1;
for(i=2; i<=n; i++){
lmax = 0;
for(j=1; j<i; j++){
if(v[j] < v[i]){
if(lung[j] == lmax)
numar+= nr[j] % MOD;
if(lung[j] > lmax){
lmax = lung[j];
numar = nr[j] % MOD;
}
}
lung[i] = 1+lmax;
nr[i] = numar % MOD;
}
}
for(i=1; i<=n; i++)
if(lung[i] > max1){
max1 = lung[i];
}
for(i=1; i<=n; i++){
if(nr[i] > max2){
max2 = nr[i];
rez = nr[i] ;
}
else if(nr[i] == max2)
rez+=nr[i];
}
cout<<max1<<" "<<rez;
return 0;
}