zoukankan      html  css  js  c++  java
  • 牛客网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 }
  • 相关阅读:
    leetcode 122. Best Time to Buy and Sell Stock II
    leetcode 121. Best Time to Buy and Sell Stock
    python 集合(set)和字典(dictionary)的用法解析
    leetcode 53. Maximum Subarray
    leetcode 202. Happy Number
    leetcode 136.Single Number
    leetcode 703. Kth Largest Element in a Stream & c++ priority_queue & minHeap/maxHeap
    [leetcode]1379. Find a Corresponding Node of a Binary Tree in a Clone of That Tree
    正则表达式
    十种排序算法
  • 原文地址:https://www.cnblogs.com/cutelife/p/11772000.html
Copyright © 2011-2022 走看看