ACM题求解

savioryx28 2009-09-23 06:34:16
XiaoMan家里建了一排牛棚打算养牛并且某些牛棚内已经住了牛了。但是因为台风“桑美”的登陆,XiaoMan家里所有牛棚的屋顶都被吹没了(犀利的台风)。XiaoMan必须尽快将有牛住着的牛棚的屋顶修好。Yoyo了解了XiaoMan的情况以后决定免费的为XiaoMan提供M块木板用来修复牛棚的屋顶并且Yoyo提供的木板的长度是可以由XiaoMan自己决定的。由于XiaoMan的脸皮不够厚,不好意思让Yoyo的损失太大,他希望用掉的木板的总长度最小。因为XiaoMan不太擅长计算,他希望你写一个程序帮助他来解决这个问题。

Input:

第一行会输入三个数字,M (1 <= M <= 50)表示Yoyo可以提供的木板总数,S (1 <= S <= 200) 表示XiaoMan家里牛棚总的个数,C (1 <= C <= S) 表示住了牛的牛棚的总数。接下来的C行,每行会有一个数字表示住了牛的牛棚的编号(编号从1开始)。

Output:

输出只有一行,表示XiaoMan最小能用多少长度的木板来完成任务,即每个有牛的牛棚上面都有木板覆盖。


以下是我写的

#include<iostream>
using namespace std;
int main()
{
int M,S,C;
while(cin>>M>>S>>C)
{
int i,j,id[200],temp,sum,cha[200];
for(i=0;i<C;i++)
{
cin>>id[i];
}
for(i=0;i<C;i++)
{
for(j=1;j<C;j++)
if(id[j]>id[j-1])
{
temp=id[j-1];
id[j-1]=id[j];
id[j]=temp;
}
}
sum=id[0]-id[C-1];
for(i=1;i<C;i++)
{
cha[i-1]=id[i-1]-id[i];
}
for(i=0;i<C-1;i++)
{
for(j=1;j<C-1;j++)
if(cha[j]>cha[j-1])
{
temp=cha[j-1];
cha[j-1]=cha[j];
cha[j]=temp;
}
}
for(i=0;i<M-1;i++)
{
sum=sum-cha[i];
}
cout<<sum+M<<endl;
}
return 0;
}



学校OJ上显示WA。。。请高手帮忙。。。
...全文
198 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
savioryx28 2009-09-23
  • 打赏
  • 举报
回复
极端输入是什么?。。。
比如M=C? 还是S=C?我都试过了。。
nothize 2009-09-23
  • 打赏
  • 举报
回复
有 buffer overflow 的危險, 所以過不到吧?

要注意極端的輸入.
savioryx28 2009-09-23
  • 打赏
  • 举报
回复
而且是M<=C...
savioryx28 2009-09-23
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hyram 的回复:]
C/C++ codeif(M>=C)cout<<C;return0;
[/Quote]
我原来有加的 但是其实没影响又给拿掉了
hyram 2009-09-23
  • 打赏
  • 举报
回复
if(M>=C)cout<<C;return 0;
savioryx28 2009-09-23
  • 打赏
  • 举报
回复
自己尝试了很多组测试数据并调试无数遍 无任何错误 OJ就是提示WA。。。
savioryx28 2009-09-23
  • 打赏
  • 举报
回复
Sample Input

4 50 18

3

4

6

8

14

15

16

17

21

25

26

27

30

31

40

41

42

43

Sample Output

25

Sample 解释:

我们可以用四块木板分别覆盖 3-8 14-21 25-31 40-43这些区间的牛棚,这样总长度25

这个是sample
liao05050075 2009-09-23
  • 打赏
  • 举报
回复
把sample发上来
CoderOfVC 2009-09-23
  • 打赏
  • 举报
回复
自己调试吧。。
savioryx28 2009-09-23
  • 打赏
  • 举报
回复
在线等。。。高手们帮帮忙啊=、=想了2小时了

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧