网站开发自学还是培训,百业网免费发布信息,网站建设和维护及云计算,杭州文化传媒类高端网站建设公司拍集体照时队形很重要#xff0c;这里对给定的 N 个人 K 排的队形设计排队规则如下#xff1a; 每排人数为 /#xff08;向下取整#xff09;#xff0c;多出来的人全部站在最后一排#xff1b;  后排所有人的个子都不比前排任何人矮#xff1b;  每排中最高者站中间这里对给定的 N 个人 K 排的队形设计排队规则如下  每排人数为 /向下取整多出来的人全部站在最后一排  后排所有人的个子都不比前排任何人矮  每排中最高者站中间中间位置为 /其中 m 为该排人数除法向下取整  每排其他人以中间人为轴按身高非增序先右后左交替入队站在中间人的两侧例如5人身高为190、188、186、175、170则队形为175、188、190、186、170。这里假设你面对拍照者所以你的左边是中间人的右边  若多人身高相同则按名字的字典序升序排列。这里保证无重名。 现给定一组拍照人请编写程序输出他们的队形。 输入格式 每个输入包含 1 个测试用例。每个测试用例第 1 行给出两个正整数 N≤总人数和 K≤总排数。随后 N 行每行给出一个人的名字不包含空格、长度不超过 8 个英文字母和身高[30, 300] 区间内的整数。 输出格式 输出拍照的队形。即K排人名其间以空格分隔行末不得有多余空格。注意假设你面对拍照者后排的人输出在上方前排输出在下方。 输入样例 10 3
Tom 188
Mike 170
Eva 168
Tim 160
Joe 190
Ann 168
Bob 175
Nick 186
Amy 160
John 159输出样例 Bob Tom Joe Nick
Ann Mike Eva
Tim Amy John  //过程借鉴网上的侵删。//判断那部分可以省略没有在那里设坑//比较字符串大小时要用strcpy#includecstdio
#includecstring
#includealgorithm
using namespace std;
const int maxn  10010;
struct Student{char name[10];int height;
}stu[maxn];bool cmp(Student a,Student b){if(a.height ! b.height) return a.height  b.height;else return strcmp(a.name,b.name)  0;
}void print(int index,int n){//index is what the number of the Studets will be printing next int a[n];a[n/2]  index;int left  n / 2 - 1,right  n / 2  1, i  index  1;while(left  0 || right  n){if(left  0) a[left--]  i;if(right  n) a[right]  i;}for(int i  0; i  n; i){printf(%s,stu[a[i]].name);if(i  n - 1) printf( );}printf(\n);
}void solve(int n,int k){sort(stu,stun,cmp);int num  n / k;print(0,numn%k);for(int i  numn%k ; i  n ; i  num)print(i,num);
}int main(){int n,k;char str[10];scanf(%d%d,n,k);int he,cnt  0;for(int i  0; i  n; i){getchar();scanf(%s %d,str,he);if(he  30  he  300){//stu[i].name  str;strcpy(stu[i].name,str); //strcpy的用法第一个字符串是被赋值的stu[i].height  he;cnt;}}n  cnt;solve(n,k);return 0;
}    转载于:https://www.cnblogs.com/wanghao-boke/p/10395365.html