pat 1055. 集体照
来源:互联网 发布:冬天四件套绒淘宝 编辑:程序博客网 时间:2024/06/05 19:24
原题链接:
思路:先排序然后找到关系,直接打印就好了。这里要吐槽下这个题,题意看了半天才懂啥意思。排序是按照身高逆序,却是按照姓名升序。最无语的就是测试数据了,我把k当成每排的人数写的代码都能通过三个测试点,最后才发现k是排数
#include<bits/stdc++.h>using namespace std;const int maxn=10005;int n,k;struct student{ char name[10]; int height;}stu[maxn];bool cmp(student stu1,student stu2){ if(stu1.height!=stu2.height){ return stu1.height<stu2.height; } return strcmp(stu1.name,stu2.name)>0;}//根据传入的左右边界打印出那一排void print(int left,int right){ int mid=(left+right+1)/2; int ok=true; for(int i=left;i<=right;i++){ if(!ok){ putchar(' '); } ok=false; //升序排列,所以right的值对应的是mid位置 if(i<mid){ printf("%s",stu[right+1-(mid-i)*2].name); }else{ printf("%s",stu[right-(i-mid)*2].name); } } printf("\n");}void solve(){ cin>>n>>k; for(int i=0;i<n;i++){ scanf("%s %d",stu[i].name,&stu[i].height); } sort(stu,stu+n,cmp); int m=n/k; if(m==0){ return; } for(int i=k-1;i>=0;i--){ int left=i*m; print(left,n-1); n=left; }}int main(){ //freopen("in.txt","r",stdin); solve(); return 0;}
阅读全文
0 0
- PAT-B 1055. 集体照
- PAT-B 1055. 集体照
- pat 1055. 集体照
- PAT 1055.集体照
- [PAT-乙级]1055.集体照
- 1055. 集体照 (25) PAT
- pat 1055. 集体照
- C++ - PAT - 1055. 集体照 (25)
- PAT乙级 1055. 集体照 (25)
- [PAT乙级]1055. 集体照 (25)
- PAT乙级1055. 集体照 (25)
- pat 乙级 1055. 集体照 (25)
- PAT乙级 1055. 集体照 (25)
- PAT乙级1055. 集体照(25)
- PAT乙级—1055. 集体照 (25)-native
- 1055. 集体照 (25)-PAT乙级真题
- PAT BASIC LEVEL 1055. 集体照 (25)
- 1055. 集体照 (25) PAT乙级真题
- 推荐两个安装Cygwin时的快速源
- OSPF特性和OSPF术语解释
- 训练总结 8.9
- GitHub上Top20个 Python 语言机器学习项目
- Kyoya and Colored Balls CodeForces 553A(组合数学)
- pat 1055. 集体照
- SQL 笔记整理 8_9
- 指令movabsq
- 关于环境变量的配置
- 【51nod 教程】最大子段和问题(动态规划)
- 《转载》——8幅图图解Java机制
- n-gram统计 计算句子概率 SRILM安装使用
- 暑假集训 第N+1(15)天 糟了个糕
- SHUOJ 指示灯控制