P1208混合牛奶 后两个案例WA 求大佬帮忙看看
查看原帖
P1208混合牛奶 后两个案例WA 求大佬帮忙看看
581852
wxz2307019155楼主2021/11/19 22:51
#include <stdio.h>
int price[1000000],amount[1000000],rank[1000000];
int main(){
    int n,m,sum=0,count=0,temp,x;//sum表示总价,count表示这是第几次购买,x记录当前购买的奶农的录入编号

    scanf("%d %d",&n,&m);//读入数据
    if(n==0){
        printf("0");
        return 0;
    }
    for(int i=0; i<m; i++){
        scanf("%d%d",&price[i],&amount[i]);
        rank[i]=price[i];
    }

    for(int i=0; i<m-1; i++){//对当前各种价格排序
        for(int j=0; j<m-i-1; j++){//经常忘记冒泡排序的第二重循环要-1
            if(rank[j]>rank[j+1]){
                temp=rank[j];
                rank[j]=rank[j+1];
                rank[j+1]=temp;
            }
        }
    }

    while(n!=0){//n是还需要购买的牛奶数量
        for(int i=0; i<m; i++){//获得当前购买的奶农的录入编号
            if(rank[count]==price[i]){
                x=i;
                count++;//下一次购买更贵的奶
                break;
            }
        }
        if(n-amount[x]>=0){
            sum+=price[x]*amount[x];
            n-=amount[x];
        }
        else{
            sum+=price[x]*n;
            n-=n;
        }
    }
    printf("%d\n",sum);

    return 0;
}
2021/11/19 22:51
加载中...