独木舟上的旅行
2012-06-13 17:12
169 查看
先排序然后,因
为限制条件比较多,一次最多两个,所以要么当前最大的配一个最小的一起,要么单独当前最大的自己
#include<iostream> #include<cstdlib> using namespace std; int a[305]; int cmp(const void *a, const void *b) { return *(int *)a - *(int *)b; } int main() { int t; cin>>t; while(t--) { int n, m; cin>>n>>m; for(int i=0;i<m;i++) cin>>a[i]; qsort(a, m, sizeof(a[0]), cmp); int left=0, right=m-1, count=0; while(left <= right) { if((a[right] + a[left]) <= n) { left++; right--; } else { right--; } count++; } cout<<count<<endl; } return 0; }