宿舍谁最高?
2015-05-29 09:47
776 查看
学校选拔篮球队员,每间宿舍最多有4个人。现给出宿舍列表,请找出每个宿舍最高的同学。定义一个学生类Student,有私有成员身高height,体重weight等。
Input Specification:
题目首先输入一个整型数n (1<=n<=1000000),表示n位同学,紧跟着n行输入,每一行格式为:宿舍号,name,height,weight。宿舍号为[0,999999], name 由字母组成,长度小于16,height,weight为正整数。按宿舍号从小到大排序,输出每间宿舍身高最高的同学信息。题目保证每间宿舍只有一位身高最高的同学。
Output Specification:
对于每一间宿舍,请找出身高最高的同学,并输出其信息。输出顺序按宿舍号从小到大排序。
Sample Input:
Sample Output:
#include<iostream>
#include<iomanip>
using namespace std;
int heighest[1000000];
class student
{
int weight;
char name[16];
public:
int heigh;
int roomnum;
void input()
{
cin>>roomnum>>name>>heigh>>weight;
}
void output()
{
cout<<setfill('0')<<setw(6)<<roomnum<<" "<<name<<" "<<heigh<<" "<<weight<<endl;
}
};
int main()
{
int n,i,j,len,change,flag;
cin>>n;
student *p;
p=new student[n+1];
len=1;
if(p==NULL)
{cout<<"Allocate memory failure!"<<endl;return 0;}
p[1].input();
heighest[p[1].roomnum]=1;
for(i=2;i<=n;i++)
{
p[i].input();
if(heighest[p[i].roomnum]==0)
{
heighest[p[i].roomnum]=i;
len++;
}
else
{
if(p[i].heigh>p[heighest[p[i].roomnum]].heigh)
heighest[p[i].roomnum]=i;
}
}
flag=0;
for(i=0;i<1000000;i++)
{
if(heighest[i]==0) continue;
else
{
p[heighest[i]].output();
flag++;
}
if(flag==len) break;
}
delete []p;
return 0;
}
终于不超时了︿( ̄︶ ̄)︿︿( ̄︶ ̄)︿
Input Specification:
题目首先输入一个整型数n (1<=n<=1000000),表示n位同学,紧跟着n行输入,每一行格式为:宿舍号,name,height,weight。宿舍号为[0,999999], name 由字母组成,长度小于16,height,weight为正整数。按宿舍号从小到大排序,输出每间宿舍身高最高的同学信息。题目保证每间宿舍只有一位身高最高的同学。
Output Specification:
对于每一间宿舍,请找出身高最高的同学,并输出其信息。输出顺序按宿舍号从小到大排序。
Sample Input:
7 000000 Tom 175 120 000001 Jack 180 130 000001 Hale 160 140 000000 Marry 160 120 000000 Jerry 165 110 000003 ETAF 183 145 000001 Mickey 170 115
Sample Output:
000000 Tom 175 120 000001 Jack 180 130 000003 ETAF 183 145
#include<iostream>
#include<iomanip>
using namespace std;
int heighest[1000000];
class student
{
int weight;
char name[16];
public:
int heigh;
int roomnum;
void input()
{
cin>>roomnum>>name>>heigh>>weight;
}
void output()
{
cout<<setfill('0')<<setw(6)<<roomnum<<" "<<name<<" "<<heigh<<" "<<weight<<endl;
}
};
int main()
{
int n,i,j,len,change,flag;
cin>>n;
student *p;
p=new student[n+1];
len=1;
if(p==NULL)
{cout<<"Allocate memory failure!"<<endl;return 0;}
p[1].input();
heighest[p[1].roomnum]=1;
for(i=2;i<=n;i++)
{
p[i].input();
if(heighest[p[i].roomnum]==0)
{
heighest[p[i].roomnum]=i;
len++;
}
else
{
if(p[i].heigh>p[heighest[p[i].roomnum]].heigh)
heighest[p[i].roomnum]=i;
}
}
flag=0;
for(i=0;i<1000000;i++)
{
if(heighest[i]==0) continue;
else
{
p[heighest[i]].output();
flag++;
}
if(flag==len) break;
}
delete []p;
return 0;
}
终于不超时了︿( ̄︶ ̄)︿︿( ̄︶ ̄)︿
相关文章推荐
- 更改make版本由于编译4.0Android需要3.81make所以重新安装
- ListView内部控件的点击事件
- Android中Application类用法
- IOS相册功能
- Struts2之自定义类型转换器
- Dialog的创建过程
- 浅谈 Docker 隔离性和安全性
- I/O 2015:Google Photos良心,Google Jump黑科技,可惜某墙尚在
- 核PCA——从理论到实现
- IOS如何实现灵活的瀑布流(2)
- TFT,TFD,STN 屏幕以及VGA,QVGA,SVGA分辨率等常识
- Docker
- 最大类间方差法OTSU,1979年前后景区分法
- ABAP模块P类型详细解释
- 文章标题
- JOIN US框架-2(JOIN US框架是个什么东西)
- EasyUI-panel 内嵌页面上的js无法被执行
- Find Median
- XenServer
- recv函数返回值说明