poj2487(水問題)

1.任意のソート方法を使用できます。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define MAX 10010
int stamp[MAX];
int main()
{
    
    
    int n,sum,i,fri_num,tamp;int t=1;
    scanf("%d",&n);
    while(n--)
    {
    
    
        scanf("%d%d",&sum,&fri_num);
        for(i=0;i<fri_num;i++)
        {
    
    
            scanf("%d",&stamp[i]);
        }
        for(i=0;i<fri_num;i++)
        {
    
    
            for(int j=i+1;j<fri_num;j++)
            {
    
    
                if(stamp[i]<stamp[j])
                {
    
    
                    tamp=stamp[i];
                    stamp[i]=stamp[j];
                    stamp[j]=tamp;
                }
            }
        }
        for(i=0;i<fri_num;i++)
        {
    
    
            sum=sum-stamp[i];
            if(sum<=0)
            {
    
    
                printf("Scenario #%d:\n%d\n\n",t,i+1);
                break;
            }
        }
        if(i==fri_num)
        {
    
    
            printf("Scenario #%d:\nimpossible\n\n",t);
        }
        t++;
    }
    return 0;
}

おすすめ

転載: blog.csdn.net/mingjiweixiao/article/details/113450631