1109 Group Photo(25 分)

#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
const int maxn = 1e4 + 10;
struct peo {
    string name;
    int h;
    bool operator<(const peo&x)const
    {
        return h == x.h ? name < x.name: h > x.h;
    }
}a[maxn];
int n, k, m;
void show(int st, int ed)
{
    string row[1000];
    int left = 1, right = 1;
    for (int i = st; i < ed; i++)
    {
        if (i == st)row[m / 2 + 1] = a[i].name;
        else if ((i-st) % 2 == 1)
        {
            row[m / 2 + 1 - left] = a[i].name;
            left++;
        }
        else if ((i - st) % 2 == 0)
        {
            row[m / 2 + 1 + right] = a[i].name;
            right++;
        }
    }
    int i = 0;
    while (row[i] == "")i++;
    for (int j = i; j < i + ed - st; j++)
    {
        cout << row[j];
        if (j != i+ed - st - 1)cout << " ";
    }
    printf("\n");
}
int main()
{
    scanf("%d%d", &n, &k);
    m = n / k;
    for (int i = 0; i < n; i++)cin >> a[i].name >> a[i].h;
    sort(a, a + n);
    
    int lastrow = n%k + n / k;
    for (int i = 0; i < k; i++)
    {
        if (i == 0)
        {
            show(0, lastrow);
        }
        else
        {
            show(lastrow + (i - 1)*m, lastrow + i*m);
        }
    }
    return 0;
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 题目 Given a linked list, reverse the nodes of a linked lis...
    Al73r阅读 1,522评论 0 0
  • Given a linked list, reverse the nodes of a linked list k...
    六尺帐篷阅读 1,873评论 0 1
  • “沾衣欲湿杏花雨”,四月的雨总是很温情,淅淅沥沥,裹着微风,含着各种花的清香,像一个美娇娘,浅浅淡淡,飘飘洒洒,欲...
    湍河故事阅读 3,161评论 0 7
  • 非常渴望爱又不相信爱 是否真正的相信有 更大的存在? 真的相信爱? 那么 为什么恐惧呢? 真正的相信爱心里有爱的种...
    帅俊阅读 3,328评论 0 1
  • 今天第一次坐火车,8点05分的车,早上闹钟起的7点,搭车到车站都快8点了。票还没兑,给自己一个紧张面。还是好心人多...
    听风想雨阅读 1,454评论 0 0

友情链接更多精彩内容