2288 - 小D的跨国贸易

D是某钢材公司的董事长,公司与外国多家企业长期有良好的合作关系;这天,他们公司要运一批货到国外;于是,他指定他的副总小QXX码头将这批货物运往A国,到了码头,小Q犯难了;船所能载的重量只有W;如何才能把更多的集装箱运出去呢?

题目输入

输入数据有多组,每组的第一行W代表船的载重量;第二行N代表N各集装箱;第三行是每个集装箱的重量

题目输出

输出能带走的集装箱的个数

输入/输出样例

题目输入

5
3
1 2 3

题目输出

2

C语言解答

#include<stdio.h>
#include<stdlib.h>
int cmp(const void *a, const void *b)
{
	return *(int *)a - *(int *)b;
}
main()
{
	int nums[1000], max, n;
	while(scanf("%d", &max) != EOF)
	{
		scanf("%d", &n);
		for(int i = 0; i < n; i++)
			scanf("%d", &nums[i]);
		qsort(nums, n, sizeof(int), cmp);
		int count = 0, total = 0;
		for(int i = 0; i < n; i++)
		{
			if((total += nums[i]) <= max)
				count++;
			else
				break;
		}
		printf("%d\n", count);
	}
}

C++解答

#include<iostream>
#include<algorithm>
using namespace std;
int main(){
	int w;
	int N[10000];
	int n;
	while(scanf("%d",&w) != EOF){
		cin>>n;
		for(int i = 0;i < n;i++){
			cin>>N[i];
		}
		sort(N,N+n);
		int t = 0;
		for(int i = 0;i < n;i++){
			
			   w -= N[i];
	        if(w >= 0){ 
			   t++;	
			}
		    if(w < 0){
    			break;
    		}
		}
		cout<<t<<endl;
	}
}
时间限制 1 秒
内存限制 128 MB
讨论 统计
上一题 下一题