职业IT人-IT人生活圈

 找回密码
 成为会员
搜索
查看: 666|回复: 0

请问各位大牛我杭电1871题目为什么会错

[复制链接]
wpq88 发表于 2009-8-13 19:09 | 显示全部楼层 |阅读模式
无题
Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 980Accepted Submission(s): 424


Problem Description
就要复试了
外地的考生都要在学校附近住宾馆了
假设在学校附近有C家宾馆
并且这些宾馆只有单人房
而每家宾馆的价格不一样
学生们都想找价格便宜的住
所以现在需要你的帮助
当有学生需要住宾馆的时候
告诉他哪个宾馆还有空的房间并且价格最便宜
而且有一个要求
同一个组的学生要住在同一个宾馆


Input
输入包括多组数据
输入首先包括一个整数T(T <= 50)
代表有T组数据
每组数据首先是一个整数C(C <= 100),代表宾馆的个数
接下来是C行数据
每行3个整数
第一个代表宾馆的编号(<=1000)
第二个是宾馆的房间数(<=50)
第三个是宾馆的价格(<=1000)
然后是一个整数T (T <= 1000)
代表想找宾馆住的小组
接下来的T行每行代表一个要找宾馆的小组
每个小组不超过10人



Output
对于每组数据中的想找宾馆的小组
输出他们应该找的宾馆编号
如果没有合适的宾馆或已经住满
输出”sorry”.


Sample Input
1
2
1 2 100
2 3 120
4
3
1
1
5


Sample Output
2
1
1
sorry




我的代码
#include<stdio.h>
void swap(int &x,int &y)
{
int t;
t=x;
x=y;
y=t;
}
int main()
{
int t,a[1001][3],c,i,j,num,leap,k,total;
scanf(\"%d\",&t);
while(t--)
{
scanf(\"%d\",&c);
for(i=0;i<c;i++)
scanf(\"%d%d%d\",&a[0],&a[1],&a[2]);
for(i=0;i<c;i++)
for(j=i+1;j<c;j++)
if(a[2]>a[j][2])
{
swap(a[0],a[j][0]);
swap(a[1],a[j][1]);
swap(a[2],a[2]);
}
else if(a[2]==a[j][2]&&a[j][1]<a[1])
{
swap(a[0],a[j][0]);
swap(a[1],a[j][1]);
swap(a[2],a[2]);
}
scanf(\"%d\",&num);
for(j=0;j<num;j++)
{
scanf(\"%d\",&total);
leap=0;
for(k=0;k<c;k++)
if(total<=a[k][1])
{
leap=1;
a[k][1]-=total;
printf(\"%d\\n\",a[k][0]);
break;
}
if(leap==0)
printf(\"sorry\\n\");
}
}

return 0;
}
您需要登录后才可以回帖 登录 | 成为会员

本版积分规则

QQ|手机版|小黑屋|网站帮助|职业IT人-IT人生活圈 ( 粤ICP备12053935号-1 )|网站地图
本站文章版权归原发布者及原出处所有。内容为作者个人观点,并不代表本站赞同其观点和对其真实性负责,本站只提供参考并不构成任何投资及应用建议。本站是信息平台,网站上部分文章为转载,并不用于任何商业目的,我们已经尽可能的对作者和来源进行了通告,但是能力有限或疏忽造成漏登,请及时联系我们,我们将根据著作权人的要求立即更正或者删除有关内容。

GMT+8, 2024-5-6 06:28 , Processed in 0.131061 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表