PAT-A1109

    xiaoxiao2021-03-25  110

    #include<stdio.h> #include<algorithm> #include<string.h> using namespace std; struct people{ char name[15]; int height; }peo[10010]; bool cmp(people a , people b){ if(a.height!=b.height) return a.height>b.height; else return strcmp(a.name,b.name)<0; } int main(){ int n, i, j, k, row=0, first; scanf("%d%d",&n,&k); for(i=0;i<n;i++){ scanf("%s %d", &peo[i].name, &peo[i].height); } sort(peo,peo+n,cmp); row=n/k ; first=n%row+row;//row为每行人数 int cnt=0, index=0, pos, left, right, ans[10010]={0}; pos=left=right=first/2+1; ans[pos]=index++;cnt++; while(1){ if(cnt>=first)break; left--; ans[left]=index++;cnt++; if(cnt>=first)break; right++; ans[right]=index++;cnt++; if(cnt>=first)break; } for(i=1;i<=first;i++){ printf("%s",peo[ans[i]].name); if(i<first)printf(" "); else printf("\n"); } for(int ii=1;ii<k;ii++){ cnt=0; pos=left=right=row/2+1; ans[pos]=index++;cnt++; while(1){ if(cnt>=row)break; left--; ans[left]=index++;cnt++; if(cnt>=row)break; right++; ans[right]=index++;cnt++; if(cnt>=row)break; } for(i=1;i<=row;i++){ printf("%s",peo[ans[i]].name); if(i<row)printf(" "); else printf("\n"); } } return 0; }
    转载请注明原文地址: https://ju.6miu.com/read-5959.html

    最新回复(0)