一道贪心题,按照题目的意思,应该尽量把船坐满,所以从最后一位乘客开始找和最后一名乘客体重之和仍小于等于最大负重的乘客,那么直接上代码。
#include <stdio.h>
int p[1000], ans, n, m;
int main() {
int i, j;
scanf("%d %d", &n, &m);
for( i = 1; i <= m; i++ ) scanf("%d", &p[i]);
i = 1; j = m;
while(i <= j) {
if(i == j) {
ans += 10;
break;
}
if(p[i]+p[j] <= n) {
i++; j--;
ans += 10;
}
else {
j--;
ans += 10;
}
}
printf("%d\n", ans);
return 0;
}