返回信息流求帮助。。。
以下是题目经典的乘船问题呜呜呜呜
描述
有n个人,第i个人重量为w[i]。每艘船的最大载重量均为C,且最多只能乘两个人。请问如何用最少的船装载所有人。
输入
输入有多组数据。每组数据第一行输入两个整数n和C,表示有n个人,每艘船最大载重量为C,第二行输入n个整数w[i],表示每个人的重量。所有数据均在[1, 1000]内,对于所有的w[i],都有w[i] <= C。
输出
对应每组数据,输出一个整数,表示装载所有人用的最少船数。
样例输入1
3 100
50
90
40
样例输出1
2
以下是我的代码
自以为天衣无缝的代码。。。已经六次Wrong Answer。。。。
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n,c;int c0=0;
cin>>n>>c;
int w[n];
for(int i=0;i<n;++i)
cin>>w[i];
sort(w,w+n);
int i=0,j=n-1;
while(i<=j)
{
if(i==j) {c0+=1;break;}
if((w[i]+w[j]>c)) {j-=1;c0+=1;}
else {i+=1;j-=1;c0+=1;}
}
cout<<c0<<endl;
return 0;
}
求各路神仙帮忙找bug究竟在哪呜呜呜呜呜呜呜呜
感激不尽啊磕头磕头磕头
附件(389B)
这是一条镜像帖。来源:北邮人论坛 / acm-icpc / #94099同步于 2017/10/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ACM_ICPC机器人发帖
【问题】求助C++ 贪心算法乘船问题,总是Wrong Answer 我想打
TTTAO1015
2017/10/6镜像同步22 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
嗷嗷嗷这个没看见[ema2],谢谢谢谢
【 在 viredery 的大作中提到: 】
: 题目说输入有多组数据,你这个代码只能处理一组,应该在外面套个循环
谢谢谢谢哎呀好丢脸竟然是因为这个[ema1]
【 在 d708934017 的大作中提到: 】
: 只看出了得加个while scanf循环处理多组数据
【 在 RichardW 的大作中提到: 】
: 额,楼主你写 "int w[n];" 这句不会报错吗?
有的OJ上可以这么写,虽然我也不清楚为什么