细菌实验分组(C程序设计进阶第2周)
2015-11-09 14:02
351 查看
问题描述
有一种细菌分为A、B两个亚种,它们的外在特征几乎完全相同,仅仅在繁殖能力上有显著差别,A亚种繁殖能力非常强,B亚种的繁殖能力很弱。在一次为时一个 小时的细菌繁殖实验中,实验员由于疏忽把细菌培养皿搞乱了,请你编写一个程序,根据实验结果,把两个亚种的培养皿重新分成两组。
输入
输入有多行,第一行为整数n(n≤100),表示有n个培养皿。
其余n行,每行有三个整数,分别代表培养皿编号,试验前细菌数量,试验后细菌数量。
输出
输出有多行:
第一行输出A亚种培养皿的数量,其后每行输出A亚种培养皿的编号,按繁殖率升序排列。
然后一行输出B亚种培养皿的数量,其后每行输出B亚种培养皿的编号,也按繁殖率升序排列。
样例输入
样例输出
提示
亚种内部,细菌繁殖能力差异远远小于亚种之间细菌繁殖能力的差异。
也就是说,亚种间任何两组细菌的繁殖率之差都比亚种内部两组细菌的繁殖率之差大。
源码
有一种细菌分为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; }
相关文章推荐
- 【Eclipse】打开文件所在文件夹的插件
- Sublime
- jquery(zepto) when then 使用
- Java的身份证号码工具类
- 手机自动化测试:appium源码分析之bootstrap三
- light oj 1297 Largest Box
- Google Protocol Buffer 的使用和原理
- 回魂夜台词
- swift 字典常用方法
- swift 字典常用方法
- Epoll
- 认识每一个“你”:微博中的用户模型
- AMESim R14 运行时出现许可证错误
- Cpp--虚函数的存在
- Orlace 数据库连接的那些事儿:服务器端(三)
- 稳压二极管
- HOW TO: Find the Problem Exception Stack When You Receive an UnhandledExceptionFilter Call in the St
- The specified child already has a parent错误解决办法
- ios 隐藏顶部栏
- ios 隐藏顶部栏