• 牛客网PAT练兵场-德才论


    题解:用sort排序即可

    题目地址:https://www.nowcoder.com/questionTerminal/97b6a49a85944650b2e3d0660b91c324

     1 /**
     2 * Copyright(c)
     3 * All rights reserved.
     4 * Author : Ycute
     5 * Date : 2019-10-30-19.49.12
     6 * Description : struct排序
     7 */
     8 #include<iostream>
     9 #include<cstdio>
    10 #include<cmath>
    11 #include<cstring>
    12 #include<algorithm>
    13 using namespace std;
    14 
    15 
    16 struct stu{
    17     int id;
    18     int c1;
    19     int c2;
    20 };
    21 
    22 bool cmp(struct stu a,struct stu b){
    23     if((a.c1+a.c2)==(b.c1+b.c2)){
    24         if(a.c1==b.c1){
    25             return a.id<b.id?true:false;
    26         }else{
    27             return a.c1>b.c1?true:false;
    28         }
    29     }else{
    30         return (a.c1+a.c2)>(b.c1+b.c2)?true:false;
    31     }
    32 }
    33 
    34 struct stu p1[100005];
    35 struct stu p2[100005];
    36 struct stu p3[100005];
    37 struct stu p4[100005];
    38 int main(){
    39     int num,C1,C2;
    40     scanf("%d %d %d",&num,&C1,&C2);
    41     int tot=0;
    42     int l1=0,l2=0,l3=0,l4=0;
    43     for(int i=0;i<num;++i){//输入并进行分组
    44         int a,b,c;
    45         scanf("%d %d %d",&a,&b,&c);
    46         if(b<C1||c<C1)continue;
    47         if(b>=C2&&c>=C2){
    48             p1[l1].id=a;
    49             p1[l1].c1=b;
    50             p1[l1++].c2=c;
    51         } else if(b>=C2){
    52             p2[l2].id=a;
    53             p2[l2].c1=b;
    54             p2[l2++].c2=c;
    55         }else if(b>=c){
    56             p3[l3].id=a;
    57             p3[l3].c1=b;
    58             p3[l3++].c2=c;
    59         }else{
    60             p4[l4].id=a;
    61             p4[l4].c1=b;
    62             p4[l4++].c2=c;
    63         }
    64         ++tot;
    65     }
    66   //排序
    67     sort(p1,p1+l1,cmp);
    68     sort(p2,p2+l2,cmp);
    69     sort(p3,p3+l3,cmp);
    70     sort(p4,p4+l4,cmp);
    71     //cout<<l1<<" "<<l2<<" "<<l3<<" "<<l4<<endl;
    72     printf("%d
    ",tot);
    73     for(int i=0;i<l1;++i){
    74         printf("%d %d %d
    ",p1[i].id,p1[i].c1,p1[i].c2);
    75     }
    76     for(int i=0;i<l2;++i){
    77         printf("%d %d %d
    ",p2[i].id,p2[i].c1,p2[i].c2);
    78     }
    79     for(int i=0;i<l3;++i){
    80         printf("%d %d %d
    ",p3[i].id,p3[i].c1,p3[i].c2);
    81     }
    82     for(int i=0;i<l4;++i){
    83         printf("%d %d %d
    ",p4[i].id,p4[i].c1,p4[i].c2);
    84     }
    85     return 0;
    86 }
  • 相关阅读:
    Codeforces Round #634 E2. Three Blocks Palindrome (hard version)(双指针/前缀和/二分/好题)
    Codeforces Round #634 D. Anti-Sudoku(构造/水)
    自动化----docker
    自动化---zabbbix监控
    awk使用
    自动化-KVM安装
    nginx教程以及正则
    自动化-cobbler
    Python
    自动化kickstart
  • 原文地址:https://www.cnblogs.com/cutelife/p/11772000.html
Copyright © 2020-2023  润新知