小白书贪心之乘船问题
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; }
相关文章推荐
- 31-题目1107:搬水果
- PAT-A1062. Talent and Virtue (25)(排序)
- 个人项目1修改版——自动生成四则表达式
- 分享20个最新的免费 UI 设计素材给设计师
- 漫步森林
- 我的第一篇jsp文章
- [iOS问题归总]SourceTree+osChina版本管理出现的问题
- UC星座占卜H5
- PAT-A1050. String Subtraction (20)(哈希)
- 关于虚函数的那些事儿
- 什么是跨域请求
- HDU 1232 畅通工程(并查集)
- 如何设计一个 iOS 控件?(iOS 控件完全解析)
- SecureCRT配色方案
- Android底部导航栏界面(Fragment中嵌套Fragment)
- Weinre远程调试工具
- HDU 2191多重背包问题、
- Java基础知识拾遗(一)
- erlang和java通信
- 【C++】 单链表 .cpp