2111.cpp

来自「杭电 acm部分代码 有兴趣的可以下载 谢谢」· C++ 代码 · 共 34 行

CPP
34
字号
#include<stdio.h>
#include<string.h>
void main()
{
    int p[101],w[101],v,n,i,j,t,mean[101],r,toa;
    while(scanf("%d%d",&v,&n)!=EOF&&v!=0){
        memset(p,0,sizeof(p));
        memset(w,0,sizeof(w));
        memset(mean,0,sizeof(mean));
        for(i=0;i<n;i++){
            scanf("%d%d",&p[i],&w[i]);
            mean[i]=p[i]*w[i];
        }
        for(i=0;i<n-1;i++)
            for(j=0;j<n-i-1;j++)
                if(p[j]<p[j+1]){
                    r=mean[j];mean[j]=mean[j+1];mean[j+1]=r;
                    t=p[j];p[j]=p[j+1];p[j+1]=t;
                    t=w[j];w[j]=w[j+1];w[j+1]=t;
                }
        toa=0;
        for(i=0;i<n;i++)
            if(v>=w[i]){
                toa+=mean[i];
                v-=w[i];
            }
            else if(v<mean[i])
                break;
        if(i<n)
            toa+=p[i]*v;
        printf("%d\n",toa);
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?