8 条题解
-
1
#include<algorithm> using namespace std; int i, j, N, maxload, num, cnt, nums[1009], left, right; bool cmp(int a, int b) { return a < b; } int main (void) { scanf("%d", &N); while (N--) { cnt = 0; scanf("%d %d", &maxload, &num); for (i = 0; i < num; i++) { scanf("%d", &nums[i]); } sort(nums, nums + num, cmp); // for(i=0;i<num;i++){ // printf("%d ",nums[i]); // } // printf("\n"); left = 0; right = num - 1; j = 1; while (left <= right) { // printf("变之前:\n"); // printf("第%d次: left=%d right=%d \n", j, left, right); if (nums[left] + nums[right] <= maxload) { cnt++; left++; right--; } else { right--; cnt++; } if (left >right) { break; } // printf("变之后:\n"); // printf("第%d次: left=%d right=%d \n", j, left, right); // printf("cnt=%d\n",cnt); j++; } printf("%d\n", cnt); } }
信息
- ID
- 148
- 时间
- 3000ms
- 内存
- 128MiB
- 难度
- 6
- 标签
- (无)
- 递交数
- 520
- 已通过
- 173
- 上传者