zoukankan      html  css  js  c++  java
  • 排序——81C Average Score

    a==b
    a>b时按: if(a.shu==b.shu) return a.no<b.no; return a.shu<b.shu;  
    a<b时按: if(a.shu==b.shu) return a.no>b.no; return a.shu<b.shu;  
    View Code
    #include<iostream>
    #include
    <cstdio>
    #include
    <algorithm>
    using namespace std;

    struct data
    {
    int no;
    int shu;
    }qun[
    100009];

    bool hash[100009];

    int cmp(data a,data b)
    {
    if(a.shu==b.shu)
    return a.no<b.no;
    return a.shu<b.shu;
    }

    int cmp1(data a,data b)
    {
    if(a.shu==b.shu)
    return a.no>b.no;
    return a.shu<b.shu;
    }

    int main()
    {
    int n,a,b;
    scanf(
    "%d%d%d",&n,&a,&b);
    int i;
    for(i=0;i<n;i++)
    {
    scanf(
    "%d",&qun[i].shu);
    qun[i].no
    =i;
    }
    if(a==b)
    {
    for(i=0;i<a;i++)
    printf(
    "1 ");
    for(i=0;i<b;i++)
    printf(
    "2 ");
    printf(
    "\n");
    return 0;
    }

    if(a>b)
    {
    sort(
    &qun[0],&qun[n],cmp);
    for(i=0;i<a;i++)
    {
    hash[qun[i].no]
    =1;
    }

    for(i=0;i<n;i++)
    {
    if(hash[i]==1)
    printf(
    "1 ");
    else
    printf(
    "2 ");
    }
    }
    else
    {
    sort(
    &qun[0],&qun[n],cmp1);

    for(i=0;i<b;i++)
    {
    hash[qun[i].no]
    =1;
    }

    for(i=0;i<n;i++)
    {
    if(hash[i]==1)
    printf(
    "2 ");
    else
    printf(
    "1 ");
    }
    }
    printf(
    "\n");
    }
  • 相关阅读:
    android studio导出apk
    Android开发入门经典实例
    L1-Day32
    L1-Day33
    L1-Day30
    Oracle中的null与空字符串''的区别
    Oracle中的job(定时任务)
    Oracle中的加解密函数
    LeetCode33题——搜索旋转排序数组
    Oracle中的DBMS_LOCK包的使用
  • 原文地址:https://www.cnblogs.com/huhuuu/p/2036989.html
Copyright © 2011-2022 走看看