G2-003 毕业照 (25 分)(2022/3/15天梯赛校内选拔赛)

照毕业照一定要排好队,不然就会有人被挡住,造成终身遗憾。假设有N个毕业生,准备排K行,拍毕业照的摄影师定下这么几条规矩: 1、每一行的人数一定是N/K个,如果有多的同学,全部站最后一排; 2、后排的一定不能比前排任何一个同学矮; 3、在任意一排,个子最高的站中间,之后次高的站他的右边,第三高的站他的左边,第四高的又站右边,这样依次轮换。例如,有5个同学,身高依次是190厘米,188厘米,186厘米,175厘米和170厘米,那么最后应该排成175,188, 190,186, 170。这里我们假设摄影师面向同学们站立,这样摄影师的左手就是同学们的右手。 4、如果身高相同,那就按姓名的字母序的升序排列,我们假定没有重名的。

输入格式:

每个输入包括一个测试用例,第一行有两个正整数N和K,其中N是毕业生总数,K是排数。 N<=10000,K<=10,随后N行,分别给出不超过8个字符的姓名以及他们的身高,姓名中不含空格。

输出格式:

对每一组输入,显示出毕业生拍照时的位置情况,要求打印K行学生的姓名,姓名之间以1个空格分隔,行尾不得有多余空格。因为你是面向毕业生的,所以在最后一排的同学应该显示在第一行,在第一排的同学显示在最后一行。

输入样例:

在这里给出一组输入。例如:

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

ACcode:

#include <bits/stdc++.h>
using namespace std;
int n , m , sum;
vector<string> v[10000];
struct nod{
    string s;
    int num;
}no[10005];
struct nod no2[10005];
bool cmp1(nod a , nod b)
{
    if(a.num!=b.num)
        return a.num<b.num;
    else
        return a.s>b.s;
}
int main()
{
    cin>>n>>m;
    for(int i=0;i<=n;i++)
    {
        cin>>no[i].s>>no[i].num;
    }
    sort(no,no+n,cmp1);
   int cnt=n/m;
    //chy
    for(int i=0;i<m-1;i++)
    {
        for(int j=(i+1)*cnt-1,k=0;j>=i*cnt;j--,k++)
        {
            if(k%2) v[i].insert(v[i].begin(),no[j].s);
            else v[i].push_back(no[j].s);
        }
    }
    for(int j=n-1,k=0;j>=(m-1)*cnt;j--,k++)
    {
        if(k%2) v[m-1].insert(v[m-1].begin(),no[j].s);
        else v[m-1].push_back(no[j].s);
    }
    for(int i=m-1;i>=0;i--)
    {
        for(int j=0;j<v[i].size();j++)
        {
            cout<<v[i][j];
            if(j!=v[i].size()-1)  cout<<" ";
        }
        if(i!=0) 
            cout<<endl;
    }
    return 0;
}

#include <bits/stdc++.h>
using namespace std;
int n , m , sum;
vector<string> v[10000];
struct nod{
    string s;
    int num;
}no[10005];
struct nod no2[10005];
bool cmp2(nod a,nod b)
{
    if(a.num!=b.num)
        return a.num>b.num;
    else
        return a.s<b.s;
}

void arrange(int num , int index)
{
    int j=num/2 , len=0;
    for(int i=0;i<num;i++)
    {
        no2[j]=no[index+i];
        if(len>=0) len++;
        else len--;
        len=-len;
        j+=len;
    }
    for(int i=0;i<num;i++)
    {
        cout<<no2[i].s;
        if(i!=num-1) cout<<" ";
    }cout<<endl;
}

int main()
{
    cin>>n>>m;
    for(int i=0;i<=n;i++)
    {
        cin>>no[i].s>>no[i].num;

    sort(no,no+n,cmp2);
   int cnt=n/m;

//we
	int index=0 , num;
    for(int i=0;i<m;i++)
    {
        num=cnt;
        if(i==0) num+=n%m;
        arrange(num,index);
        index+=num;
    }
    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NOTE: > Executing update_desktop_database intercept ... NOTE: > Executing update_gtk_immodules_cache intercept ... NOTE: Exit code 1. Output: /home/wu/g2l/build-niicl-nom-r001l/tmp/work/nom_r001l-niic-linux/core-image-weston/1.0-r0/intercept_scripts-b51052418cd1de15aa19deeae9844eade47e1e2e32985d114ac9c6c1afe994aa/update_gtk_immodules_cache: line 15: /home/wu/g2l/build-niicl-nom-r001l/tmp/work/nom_r001l-niic-linux/core-image-weston/1.0-r0/rootfs/usr/lib64/gtk-3.0/3.0.0/immodules.cache: No such file or directory chown: cannot access '/home/wu/g2l/build-niicl-nom-r001l/tmp/work/nom_r001l-niic-linux/core-image-weston/1.0-r0/rootfs/usr/lib64/gtk-3.0/3.0.0/immodules.cache': No such file or directory ERROR: The postinstall intercept hook 'update_gtk_immodules_cache' failed, details in /home/wu/g2l/build-niicl-nom-r001l/tmp/work/nom_r001l-niic-linux/core-image-weston/1.0-r0/temp/log.do_rootfs NOTE: > Executing update_desktop_database intercept ... NOTE: > Executing update_gtk_immodules_cache intercept ... NOTE: Exit code 1. Output: /home/wu/g2l/build-niicl-nom-r001l/tmp/work/nom_r001l-niic-linux/core-image-weston/1.0-r0/intercept_scripts-b51052418cd1de15aa19deeae9844eade47e1e2e32985d114ac9c6c1afe994aa/update_gtk_immodules_cache: line 15: /home/wu/g2l/build-niicl-nom-r001l/tmp/work/nom_r001l-niic-linux/core-image-weston/1.0-r0/rootfs/usr/lib64/gtk-3.0/3.0.0/immodules.cache: No such file or directory chown: cannot access '/home/wu/g2l/build-niicl-nom-r001l/tmp/work/nom_r001l-niic-linux/core-image-weston/1.0-r0/rootfs/usr/lib64/gtk-3.0/3.0.0/immodules.cache': No such file or directory ERROR: The postinstall intercept hook 'update_gtk_immodules_cache' failed, details in /home/wu/g2l/build-niicl-nom-r001l/tmp/work/nom_r001l-niic-linux/core-image-weston/1.0-r0/temp/log.do_rootfs DEBUG: Python function do_rootfs finished如何解决
07-20

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值