2288 - 小D的跨国贸易
时间限制 : 1 秒
内存限制 : 128 MB
小D是某钢材公司的董事长,公司与外国多家企业长期有良好的合作关系;这天,他们公司要运一批货到国外;于是,他指定他的副总小Q到XX码头将这批货物运往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; } }