c 神犇大人请留步

P1478 陶陶摘苹果(升级版)

nilianrose @ 2017-09-09 21:56:01

神犇大人请留步

帮忙看一下,同样的循环,为啥顺序相反

#include <stdio.h>
#include <stdlib.h>
int main()
{
    int n, s, x, y, h, i, j, k;//n苹果数,s力气,x身高,y凳子高, h总高
    int count = 0;//记录苹果数
    int z = 0;//最大高度
    scanf("%d %d",&n,&s);//赋值
    scanf("%d %d",&x,&y);//赋值
    h = x + y;
    int a[1000];
    int b[1000];
    for(int i = 0;i < n;i++)
    {
        scanf("%d %d",&a[i],&b[i]);//循环赋值
    }
    for(i = n - 1;i >= 0;i--)
    {
         for(j = i - 1;j >= 0;j--)
        {
            if(a[j] > a[i])
            {
                k = a[i];
                a[i] = a[j];
                a[j] = k;
                k = b[i];
                b[i] = b[j];  
                b[j] = k;
            }
        }

}//按需要高度排一遍 for(i = 0;h <= a[i];i++)

{
        z++;

}//记录最大高度

    for(i = z - 1;i >= 0;i--)
    {
         for(j = i - 1;j >= 0;j--)
        {
            if(a[j] > a[i])
            {
                k = a[i];
                a[i] = a[j];
                a[j] = k;
                k = b[i];
                b[i] = b[j];  
                b[j] = k;
            }
        }

}//按需要力气大小排一遍

//    for(i = 0;i < z;i++)
//    {
//        if(h < a[i] || s < b[i])
//        {
//            break;
//        }//已排好,一个大后面的也大
//        s -= b[i];//符合条件力气--
//        count++;//苹果++
//    }
//    printf("%d",count);
    for(i = 0;i < n ;i++)
    {
        printf("%d %d\n",a[i],b[i]);

}//调试用的 return 0;

}


by 杨奕辉 @ 2017-09-11 20:49:57

看不懂c++,是dp党的


|