<p>#include<stdio.h>
#include<stdlib.h>
typedef struct{
int index;
int weight;
int mph;
}ele;
int cmp(const void *a,const void *b){
return (*(ele *)a).weight-(*(ele *)b).weight;
}</p><p>main(){
ele mice[1000+10];
int d[1000+10];
int flag[1000+10];
int i=1;
int j;
int n;
int max;
int k;
while(scanf("%d %d",&mice[i].weight,&mice[i].mph)!=EOF) {mice[i].index=i;i++;}
n=--i;
mice[0].weight=0;
qsort(mice,n+1,sizeof(mice[1]),cmp);
d[n]=1;
for(i=n-1;i>=1;i--){
max=0;
flag[i]=0;
for(j=i+1;j<=n;j++)
if(mice[j].mph<mice[i].mph&&mice[j].weight>mice[i].weight&&d[j]>max) {max=d[j];flag[i]=j;}
d[i]=max+1;
}
max=0;
for(i=1;i<=n;i++) if(d[i]>max) {max=d[i];k=i;}
printf("%d\n",max);
printf("%d\n",mice[k].index);
while(flag[k]!=0){
k=flag[k];printf("%d\n",mice[k].index);
}
}</p>
hdoj1160
最新推荐文章于 2020-07-04 20:16:59 发布