您的位置:首页 > 其它

小白书贪心之乘船问题

2016-03-03 21:28 363 查看
俩个坐标了l,r标记最轻的和最重的,每次r往左移动,直到i和j可以坐同一艘船,然后l++,r--;

#include<cstdio>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<string>
#include<set>
#include<map>
#include<iostream>
#include<algorithm>
using namespace std;
const int maxn=1e6+10;
const double eps=1e-5;
int w[maxn];
int n,c;
int main()
{
cin>>n>>c;
for(int i=0;i<n;i++)
scanf("%d",&w[i]);
sort(w,w+n);
int l=0,r=n-1;
int sum=0;
while(l<r){
if(w[l]+w[r]<c){
l++;r--;
sum++;
}
else{
r--;
sum++;
}
}
cout<<sum<<endl;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: