# Poj Solution 1952

```http://poj.org/problem?id=1952

//* @author: 82638882@163.com
import java.io.*;
public class Main
{
public static void main(String[] args) throws IOException
{
int n=0;
my[] p=new my[a];
String[] ss;
while(a-n>10)
{
for(int i=0;i< 10;i++)
{
p[n+i]=new my();
p[n+i].p=Integer.parseInt(ss[i]);
}
n+=10;
}
for(int i=0;i< ss.length;i++)
{
p[n+i]=new my();
p[n+i].p=Integer.parseInt(ss[i]);
}
for(int i=0;i< a;i++)
{
p[i].q=1;
for(int j=i-1;j>=0;j--)
{
if(p[j].p>p[i].p&&p[j].q>=p[i].q)
p[i].q=p[j].q+1;
}
}

int max=p[a-1].q;
for(int i=0;i< a;i++)
if(p[i].q>max) max=p[i].q;
System.out.print(max);
int cnt=0;
for(int i=0;i< a;i++)
if(p[i].q==1)p[i].n=1;
for(int i=0;i< a;i++)
{
for(int j=0;j< i;j++)
{
if(p[i].q==p[j].q+1&&p[i].p< p[j].p)
p[i].n+=p[j].n;
else if(p[i].p==p[j].p&&p[i].q==p[j].q)
{
p[i].n-=p[j].n;
}
}
}
for(int i=0;i< a;i++)
if(p[i].q==max) cnt+=p[i].n;
System.out.println(" "+cnt);
}
}

class my implements Comparable< my>
{
int p;
int q;
int n=0;
@Override
public int compareTo(my arg0) {
if(q==arg0.q)
return p-arg0.p;
else return q-arg0.q;
}
}
```
This entry was posted in poj. Bookmark the permalink.