hdu 1160 FatMouse's Speed

来源:互联网 发布:中国历年外汇储备数据 编辑:程序博客网 时间:2024/05/14 19:17

找出体重不断增加,速度不断下降的最大子集

 

 

 

#include<stdio.h>#include<stdlib.h>struct op{    int x;    int w,v;    int point,nuber;}p[2000];int cmp(const void *a,const void *b){    struct op *c,*d;    c=(struct op *)a;    d=(struct op *)b;    if(c->w==d->w)        return d->v-c->v;    return d->w-c->w;}int main(){    int n,i,j,v,a,k,max;    i=0;    while(scanf("%d%d",&p[i].w,&p[i].v)!=EOF)    {        p[i].nuber=1;p[i].x=i++;    }       n=i;p[0].point=0;      qsort(p,n,sizeof(p[0]),cmp);      max=0;k=0;      for(i=0;i<n;i++)          for(j=0;j<i;j++)          {              if(p[i].w<p[j].w&&p[i].v>p[j].v&&p[i].nuber<p[j].nuber+1)              {                  p[i].nuber=p[j].nuber+1;                  p[i].point=j;              }              if(max<=p[i].nuber){max=p[i].nuber;k=i;}          }        printf("%d\n",max);        for(i=1;i<=max;i++)        {            printf("%d\n",p[k].x+1);            k=p[k].point;        }          return 0;}