1 条题解
-
0
这是一道贪心题,对大家的成绩排序后,使用双指针,一个指向最低分,一个指向最高分,看两个成绩有没有达到上限,如果没有就放在一组,如果有就单独放一组,直到全部分完组。
#include<bits/stdc++.h> using namespace std; int main() { int T,count=0; int left,right,i; int n,a[30001]; scanf("%d",&T); scanf("%d",&n); for(i=1;i<=n;i++){ scanf("%d",&a[i]); } sort(a+1,a+n+1); left=1; right=n; while(left<=right) { if(a[left]+a[right]<=T) left++,right--,count++; else right--,count++; } printf("%d",count); return 0; }
- 1
信息
- ID
- 111
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- 递交数
- 49
- 已通过
- 28
- 上传者