细菌实验分组(C程序设计进阶第2周)
问题描述
有一种细菌分为A、B两个亚种,它们的外在特征几乎完全相同,仅仅在繁殖能力上有显著差别,A亚种繁殖能力非常强,B亚种的繁殖能力很弱。在一次为时一个 小时的细菌繁殖实验中,实验员由于疏忽把细菌培养皿搞乱了,请你编写一个程序,根据实验结果,把两个亚种的培养皿重新分成两组。
输入
输入有多行,第一行为整数n(n≤100),表示有n个培养皿。
其余n行,每行有三个整数,分别代表培养皿编号,试验前细菌数量,试验后细菌数量。
输出
输出有多行:
第一行输出A亚种培养皿的数量,其后每行输出A亚种培养皿的编号,按繁殖率升序排列。
然后一行输出B亚种培养皿的数量,其后每行输出B亚种培养皿的编号,也按繁殖率升序排列。
样例输入
5
1 10 3456
2 10 5644
3 10 4566
4 20 234
5 20 232
样例输出
3
1
3
2
2
5
4
提示
亚种内部,细菌繁殖能力差异远远小于亚种之间细菌繁殖能力的差异。
也就是说,亚种间任何两组细菌的繁殖率之差都比亚种内部两组细菌的繁殖率之差大。
源码
#include <iostream>
#include <vector>
using namespace std;int main()
{//输入部分int n = 0;cin >> n;vector<float> rate(n);vector<int> id(n);for (int i = 0; i < n; i++){int first = 0, last = 0;cin >> id[i] >> first >> last;rate[id[i]-1] = (float)last/first;}//繁殖率升序排序for (int i = 0; i < n-1; i++){for (int j = i+1; j < n; j++){if (rate[id[i]-1] > rate[id[j]-1]){int temp = id[i];id[i] = id[j];id[j] = temp;}}}int maxDifference = 0;int flagSplit = 0;for (int i = 0; i < n-1; i++){if (maxDifference < rate[id[i+1]-1]-rate[id[i]-1]){maxDifference = rate[id[i+1]-1]-rate[id[i]-1];flagSplit = i;}}//输出cout << n-flagSplit-1 << endl;for (int i = flagSplit+1; i < n; i++){cout << id[i] << endl;}cout << flagSplit+1 << endl;for (int i = 0; i < flagSplit+1; i++){cout << id[i] << endl;}return 0;
}
细菌实验分组(C程序设计进阶第2周)相关推荐
- OJ题目细菌实验分组c语言,C语言
OJ.swust 西南科技ACM 0615 局部变量和子函数的运用(程序设计C实验三题目二) #include #include char isprime(int n){ if (n == 1){ r ...
- Ouj复习日志 细菌实验分组
Description 有一种细菌分为A.B两个亚种,它们的外在特征几乎完全相同,仅仅在繁殖能力上有显著差别,A亚种繁殖能力非常强,B亚种的繁殖能力很弱.在一次为时一个 小时的细菌繁殖实验中,实验员由 ...
- 递归习题—排队游戏(C程序设计进阶 第3周)
编程题#3:排队游戏 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限制: 65536kB 描述 在幼儿 ...
- Tomorrow never knows?(C程序设计进阶第2周)
问题描述 甲壳虫的<A day in the life>和<Tomorrow never knows>脍炙人口,如果告诉你a day in the life,真的会是tomor ...
- Tomorrow never knows? (C程序设计进阶 第2周)
编程题#4:Tomorrow never knows? 来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩.) 注意: 总时间限制: 1000ms 内存限 ...
- 流感传染(C程序设计进阶第2周)
问题描述 有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间里可能住人,也可能空着.在第一天,有些房间里的人得了流感,以后每天,得流感的人会使其邻居传染上流感,(已经得 ...
- 文字排版(C程序设计进阶第5周)
问题描述 给一段英文短文,单词之间以空格分隔(每个单词包括其前后紧邻的标点符号).请将短文重新排版,要求如下: 每行不超过80个字符:每个单词居于同一行上:在同一行的单词之间以一个空格分隔:行首和行尾 ...
- 2018-2019-1 20165202 20165210 20165214 实验二 固件程序设计
2018-2019-1 20165202 20165210 20165214 实验二 固件程序设计 一.实验内容 安装MDK,JLink驱动,运行uVision4,破解MDK KEIL-MDK 中添加 ...
- 20155321 实验四 Android程序设计
20155321 实验四 Android程序设计 安装Android studio成功 任务一:Android Stuidio的安装测试: 参考<Java和Android开发学习指南(第二版)( ...
- [.net 面向对象程序设计进阶] (18) 多线程(Multithreading)(三) 利用多线程提高程序性能(下)...
[.net 面向对象程序设计进阶] (18) 多线程(Multithreading)(二) 利用多线程提高程序性能(下) 本节导读: 上节说了线程同步中使用线程锁和线程通知的方式来处理资源共享问题,这 ...
最新文章
- php多流程,多种php开发环境搭建流程
- 干货分享 | 阿里PB级Kubernetes日志平台建设实践
- can硬件滤波 stm32cubemx_STM32CubeMX系列教程12:控制器局域网络(CAN)
- 使用go语言GUI库fyne绘制一个交通标志
- pandas读取excel,设置默认读取类型
- 回文字符串—回文子串—暴力破解法
- python3.4安装pygame_python 3.4.3 安装pygame
- TensorFlow基础篇(三)——tf.nn.softmax_cross_entropy_with_logits
- Unity3D基础8:C#脚本
- 01_kubernetes初始化系统和全局变量
- 各种格式PPC手机软件的安装方法
- 信息可视化——走近人类命运共同体
- 7寸显示器 树莓派4b_树莓派7寸触摸屏安装指南
- 网络服务器配置管理综合实训项目心得体会,服务器的配置与管理实训报告.doc...
- nas存储用网线直连服务器,NAS将存储设备通过标准的网络拓扑结构连接,无需服务器直接上网...
- 四维超混沌系统matlab
- 【突发】Telsa致命车祸细节报告:人为设定超速15%(下载)
- 使用 C++ 编写万年历程序
- Ubuntu16.04 安装docker-ce [傻瓜教程]
- Android 开发之Okhttp网络请求日志打印