// ConsoleApplication30.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include <iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
struct person {
char name[10];
int height;
};
person p[10001];
bool cmp(person x,person y) {
if (x.height > y.height)
return true;
if (x.height < y.height)
return false;
if (x.height == y.height) {
if (strcmp(x.name , y.name)>=0)
return false;
else
return true;
}
}
char a[1002][10];
int main()
{
int num, kpai,amount,z_amount,middle,left=1,right=0,all=0;
bool flag = true;
cin >> num >> kpai;
amount = num / kpai;
z_amount = num - amount * (kpai-1);
for (int i = 0; i < num; i++)
cin >> p[i].name >> p[i].height;
sort(p, p + num, cmp);
middle = z_amount / 2 + 1;//先排最后一排
for (int i = 0; i < z_amount; i++) {
if (flag) {
strcpy(a[middle + right], p[i].name);
right++;
flag = false;
}
else {
strcpy(a[middle - left], p[i].name);
left++;
flag = true;
}
}
cout <<a[1];
for (int i = 2; i <= z_amount; i++)
cout << " "<<a[i];//输出最后一排的人
cout << endl;
middle = amount / 2 + 1;
all += z_amount;
for (int j = 0; j < kpai - 1; j++) {
left = 1, right = 0,flag=true;
for (int i=0; i < amount; i++,all++) {
if (flag) {
strcpy(a[middle + right], p[all].name);
right++;
flag = false;
}
else {
strcpy(a[middle - left], p[all].name);
left++;
flag = true;
}
}
cout << a[1];
for (int i = 2; i <= amount; i++)
cout << " " << a[i];//输出除最后一排的人
cout << endl;
}
}
PAT1055 集体照最后一个测试点死活过不了!!!
猜你喜欢
转载自blog.csdn.net/w17390956947/article/details/104906336
今日推荐
周排行