实训一#1.8买房与选房
【问题描述】
在 X 国许多一线城市住房非常紧张,政府部门制定了相关的政策,重点满足住房刚性需求(住房面积为0,社保缴纳必须超过2年),然后才能照顾改善性需求(住房面积大于0)。
具体的原则为:
对于刚性需求,缴纳社保月数多者优先
对于改善性需求,现有自有住房面积小者优先
由于房源有限,为公平起见,开发商在不违背上述原则下特意指定同等条件下申报时间同时作为排队的条件,时间越早优先级越高。
最近有一批新楼盘准备开盘,总共有 m (≤1000)套房,所有的网上申报工作都已经完成并保存到二进制文件house.bin中,申请者提交了自己的基本材料,格式为:身份证号(18位,加1位空字符'\0',共19位)、社保缴纳月数、自有住房面积、申报时间(格式为:MM-DD-YYYY,10位字符串,加1位空字符'\0',共11位),社保缴纳月数、自有住房面积均为整数,文件最后为总报名人数 n(≤105)。
申请者可以通过身份证号查询最终的结果。
【输入形式】
输入的第一行为两个正整数 m(≤1000)和 T ( T ≤ n ),分别表示本次开盘的楼盘可供申请的套数以及查询的组数
接下来的 T 行,每行为一个18位的字符串,表示需要查询的身份证号
【输出形式】
输出为 T 行,对应每个查询的输出结果:
1. 申请者不符合购房条件或排位超出了所推出的房源数量不能中签,则输出"Sorry";
2. 申请者符合购房条件,且该名次人数为1人,则直接输出一个整数,表示选房顺序号;
3. 申请者符合购房条件,且该名次人数有多人,同时人数不大于所剩房源数量,则直接输出用空格分隔的两个整数,表示选房顺序号区间;
4. 申请者符合购房条件,且该名次人数有多人,同时人数大于所剩房源数量,则输出用/分隔两个整数,如 A/B,表示 B 人中选 A 人,选房顺序为排名倒数 A 名范围。
【样例输入】
9 6 350102200609166049 350102200609163286 250342323545313434 130502201805070787 110101196003074525 430102201102181455
【样例输出】
2 3 4 Sorry 6 2/3 Sorry
【代码框架】
建议复制以下代码框架, 在此基础上完成本题需求。此建议不是必须,你可以忽略。
#include <iostream>
using namespace std;
struct people
{
char id[19]; /* 身份证号码 */
int social; /* 社保缴纳月数 */
int area; /* 现有住房面积 */
char date[11]; /* 申报日期 */
};
people* getMess(int &n);
int main()
{
people *person; /* 指向所有报名人的基本资料首地址,通过调用函数getMess获取 */
int n; /* n为报名人数,通过调用函数getMess获取 */
person=getMess(n);
// ...
return 0;
}
people* getMess(int &n) /* 将文件数据读入内存 */
{
FILE *fp;
fp=fopen("house.bin","rb");
fseek(fp,-1*(long)sizeof(int), 2);
fread(&n, sizeof(int),1, fp);
rewind(fp);
people *tmp=new people[n];
fread(tmp, sizeof(people), n, fp);
fclose(fp);
return tmp;
}
【测试用例说明】
10%的用例无同等条件的数据,30%的用例只有刚性需求,20%的用例只有改善性需求。
测试用例十数据规模较大,需要算法优化。
【文件下载】
请下载压缩文件
fileDL.zip并在存放源程序文件的文件夹下解开,其中二进制文件house.bin包含了相关的测试数据,test.txt是相关测试数据的文本格式,可用于程序测试。。
#include<bits/stdc++.h>
using namespace std;
int m;
struct P{char id[19]; int social; int area; char date[11]; bool operator < (const P&b)const{ if(area==0&&social<=24)return 0;if(b.area==0&&b.social<=24)return 1;if(area!=b.area)return area<b.area;if(area==0&&social!=b.social)return social>b.social; for(int i=6;i<10;++i)if(date[i]!=b.date[i])return date[i]<b.date[i];for(int i=0;i<2;++i)if(date[i]!=b.date[i])return date[i]<b.date[i];for(int i=3;i<5;++i)if(date[i]!=b.date[i])return date[i]<b.date[i];return 0;}
};
P *p;
P *getMess(int &n){FILE *fp;fp=fopen("house.bin","rb");fseek(fp,-1*(long)sizeof(int), 2);fread(&n, sizeof(int),1, fp);rewind(fp);P *tmp=new P[n];fread(tmp, sizeof(P), n, fp);fclose(fp);return tmp;
}
int n;
map<string,int>mp;
void work(){char c[19];scanf("%s",c);string s=c;int id=mp[s];int l=lower_bound(p,p+n,p[id])-p+1;int r=upper_bound(p,p+n,p[id])-p;if((p[id].area==0&&p[id].social<=24)||l>m)printf("Sorry\n");else if(l==r)printf("%d\n",l);else r>m?printf("%d/%d\n",m-l+1,r-l+1):printf("%d %d\n",l,r);
}
int main(){p=getMess(n);sort(p,p+n);for(int i=0;i<n;++i){string s=p[i].id;mp[s]=i;}int T;scanf("%d%d",&m,&T);while(T--)work();return 0;
}
实训一#1.8买房与选房相关推荐
- 【C++编程题】买房与选房(排序,模拟)
[问题描述] 在 X 国许多一线城市住房非常紧张,政府部门制定了相关的政策,重点满足住房刚性需求(住房面积为0,社保缴纳必须超过2年),然后才能照顾改善性需求(住房面积大于0). 具体的原则为: 对于 ...
- 买房容易选房难 八大把关教您如何选好房
如何在星罗棋布的楼盘中进行大浪淘沙,选到自己最心仪的房子?这很考验购房者的专业眼光.建筑知识乃至经验.八大要点,供购房者参考. 地段很重要 众所周知,随着城市的不断开发,地段也就决定了交通.教育等日常 ...
- 大佬,您的选房系统已上线
转自 | 数据团学社,微信搜索metrodata_xuexi 即可关注 本文约1500字,阅读需要5分钟 关键词:买房 Python 选房 R 定价 本文讲述了借助Python,Gis和R语言制作房源 ...
- python房价预测_您的选房系统已上线——利用python和R如何进行房价预测
本文约1500字,阅读需要5分钟.讲述了如何使用python进行房价信息获取,如何利用R构建回归模型以达到预测上海某个地区房价的目的. 关键词:买房 Python 选房 R 定价 本文讲述了借助Pyt ...
- 程序员团队名称和口号_济南市大学生双创孵化平台创业菁英实训营2019年第五期【最具人气创业团队】由你来选!...
2019年9月14日,济南市大学生双创孵化平台创业菁英实训营2019年第五期在山东大学(中心校区)就业创业指导中心第一报告厅开营,本次实训营共为期6天,学员们都是来自山东大学.山东财经大学.济南大学. ...
- mq系列传感器的程序_深圳现代通信系列实训系统
深圳现代通信系列实训系统 ejsnb5p 深圳现代通信系列实训系统 因为考虑到机箱的抗腐蚀.导电.导热等的内部要求,我们的机箱减震系统全部采用金属材料制成,这比起用橡胶材料做减震不但能达到上述要求,还 ...
- python实训项目-黑马程序员上海校区Python21期Django项目实训
黑马程序员上海中心 月薪一万只是起点 关注 晚上十点,一名名Python学生正在酣畅淋漓地撸代码,手指不间断地敲击着键盘,发出机械而清脆的声音. 各个小组在经过为期4天的django项目小组开发,终于 ...
- 计算机综合应用能力实总结,计算机综合应用能力实训报告总结.doc
计算机综合应用能力实训报 告 作者: 学院:四川广播电视大学 专业:建筑施工与管理 年级:16 秋 学号: 课程设计实训目的和任务: 1.?掌握正投影法的基本原理及其应用和齿轮啮合画法 2.?绘制和阅 ...
- Bootstrap4+MySQL前后端综合实训-Day10-AM【实训汇报-下午返校、项目代码(7个包+7个Html页面)】
[Bootstrap4前端框架+MySQL数据库]前后端综合实训[10天课程 博客汇总表 详细笔记][附:实训所有代码] 目录 实训汇报 数据库--所有SQL语句 工程文件展示 代码 ①package ...
最新文章
- matlab 斐波那契数列Fibonacci Sequence
- python 通过title判断_利用Python模拟GitHub登录
- 不允许对系统目录进行即席更新_还不懂Docker?一个故事安排的明明白白!
- 如何判断PeopleEditor的值为空
- Java 8中的StringJoiner与String.join的示例
- Atitit 图像处理 深刻理解梯度原理计算.v1 qc8
- win8 计算机服务,Win8.1系统下哪些服务可以关闭
- 百分比函数用计算机怎么设置,excel怎么自动计算百分比 excel百分比公式怎么输入...
- 3Ds Max动画课程设计
- 硬件工程师的真实前途我说出来可能你们不信
- java循环满足跳出_java,break语句,无论是否满足条件,都会跳出for循环?
- Inkscape如何将png图片转换为svg图片并且不失真
- RDD、DataFrame、DataSet原理解析
- word论文排版插件_有了这3个Word插件,各种Word难题都能迎刃而解!
- 艾奇KTV电子相册制作软件 4.7 破解安装版
- CANoe Scope——高效解析总线报文
- pythonista3安装第三方库_如何在pythonista for ios中添加第三方库,如pandas?
- 第八章 数组 个人总结笔记
- 带你一起学习C语言语法
- rtux64w10.sys导致DRIVER_IRQL_NOT_LESS_OR_EQUAL蓝屏的解决方法