题解:

需要注意的是,快排完之后并不是按照编号从小到大的顺序输出

#include<iostream>
using namespace std;
int r=0;
void swap(int &a,int &b){
  int t=a;
  a=b;
  b=t;
 }
void sort(int s[],int l,int r,int k[])
{
    int mid=s[(l+r)/2];
    int i=l,j=r;
    do{
        while(s[i]>mid) i++;
        while(s[j]<mid) j--;
        if(i<=j)
        {
            swap(s[i],s[j]);
            swap(k[i],k[j]);
            i++;
            j--;
        }
    }while(i<=j);
    if(l<j) sort(s,l,j,k);
    if(i<r) sort(s,i,r,k);
}
void sort2(int s[],int k[],int i)

 if(k[i]>k[i+1]){
    swap(k[i],k[i+1]);
 }
 r=i+1;
 if(s[r]==s[r+1]){
  sort2(s,k,r);
 }else{
  return;
 }
 if(k[i]>k[i+1]){
    swap(k[i],k[i+1]);
 }
 return ;
}
int main()
{
 int n,m;
 cin>>n>>m;
 int k[n],s[n];
 for(int i=0;i<n;i++){
  cin>>k[i]>>s[i];
 }
 
 sort(s,0,n-1,k);
 
 int ret=m*1.5;
 while(s[ret-1]==s[ret]){
  ret++;
 }
 
//重点是可能循环一次并不能将顺序排正
//其实现在想想,可以只对成绩重复那些人进行一次冒泡排序即可
 int key=1;
 while(key){
  for(int i=0;i<ret;i++){
   if(s[i]==s[i+1]&&k[i]>k[i+1]){
    for(i;i<ret;i++){
     if(s[i]==s[i+1]){
      sort2(s,k,i);
      i=r;
     }
    }
    break;
   }
   if(i==ret-1){
    key=0;
   }
  }
 }
 
 cout<<s[ret-1]<<" "<<ret<<endl;
 for(int i=0;i<ret;i++){
  cout<<k[i]<<" "<<s[i]<<endl;
 }
 return 0;
}

(排序)P1068 分数线划定的更多相关文章

  1. 洛谷——P1068 分数线划定

    P1068 分数线划定 题目描述 世博会志愿者的选拔工作正在 A 市如火如荼的进行.为了选拔最合适的人才,A 市对 所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试.面试分数线根 据 ...

  2. 洛谷 P1068 分数线划定

    P1068 分数线划定 题目描述 世博会志愿者的选拔工作正在 A 市如火如荼的进行.为了选拔最合适的人才,A 市对 所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试.面试分数线根 据 ...

  3. luogu P1068 分数线划定 x

    P1068 分数线划定 题目描述 世博会志愿者的选拔工作正在 A 市如火如荼的进行.为了选拔最合适的人才,A 市对 所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试.面试分数线根 据 ...

  4. 洛谷P1068 分数线划定:sort结构体排序+贪心

    题目描述 世博会志愿者的选拔工作正在 A 市如火如荼的进行.为了选拔最合适的人才,A市对所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试. 面试分数线根据计划录取人数的150%划定, ...

  5. 洛谷 P1068 分数线划定【结构体排序】

    题目描述 世博会志愿者的选拔工作正在 A 市如火如荼的进行.为了选拔最合适的人才,A 市对 所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试.面试分数线根 据计划录取人数的150%划 ...

  6. 洛谷 P1068 分数线划定【排序+模拟】

    世博会志愿者的选拔工作正在 A 市如火如荼的进行.为了选拔最合适的人才,AA市对 所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试.面试分数线根 据计划录取人数的150\%150%划 ...

  7. c++之洛谷P1068分数线划定

    这是个排序题,做题过程中对sort的理解加深了不少,记下来避免忘记. 题目来源:https://www.luogu.org/problemnew/show/P1068 题目描述 世博会志愿者的选拔工作 ...

  8. (sort)P1068 分数线划定 洛谷

    题目描述 世博会志愿者的选拔工作正在 A 市如火如荼的进行.为了选拔最合适的人才,AA市对 所有报名的选手进行了笔试,笔试分数达到面试分数线的选手方可进入面试.面试分数线根 据计划录取人数的150\% ...

  9. 洛谷 P1059明明的随机数 & P1068分数线划定 & P1781宇宙总统

    题目:https://www.luogu.org/problemnew/show/P1059 思路:STL中的set使用. //#include<bits/stdc++.h> #inclu ...

随机推荐

  1. main.js index.html与app.vue三者关系详解

    main.js index.html与app.vue三者关系详解 2019年01月23日 11:12:15 Pecodo 阅读数 186   main.js与index.html是nodejs的项目启 ...

  2. windows远程桌面不显示本地磁盘

    \\tsclient\D 在资源管理器输入上面的内容就可以访问本地的D盘,但是前提是连接远程桌面的时候设置了可以访问本地D盘.

  3. 使用SpringMVC时,web应用的资源路径问题

    web应用常见的资源存方式 在WEB-INF下新建lib,存放要使用的jar包 在WEB-INF下新建jsp文件夹,存放jsp文件.首页除外,首页就放到web下. 在web下,或WEB-INF下,新建 ...

  4. 「NOIP2011」聪明的质监员

    传送门 Luogu 解题思路 第一眼肯定是没什么思路的 dalao勿喷,但我们仔细看一看式子就会发现 \(Y\) 是随着 \(W\) 的变大而变小的. 所以 \(Y\) 随 \(W\) 的变化是单调的 ...

  5. PyQt5点击菜单栏弹出新窗口,解决新窗口闪退的实现方法

    实现的功能为:当点击菜单中某个菜单时,会弹出一个新窗口,下面就列出部分代码 def mail_setting(self): log.debug("open mail settings&quo ...

  6. Eclipse启动选择启动空间

    window -->preferences-->General-->Startup and Shutdown -->Workspaces-->勾选Prompt for w ...

  7. Kubernetes Dashboard 【转】

    前面章节 Kubernetes 所有的操作我们都是通过命令行工具 kubectl 完成的.为了提供更丰富的用户体验,Kubernetes 还开发了一个基于 Web 的 Dashboard,用户可以用 ...

  8. Kubernetes 各版本镜像列表

    以下镜像列表由 kubeadm v1.11.1 导出,若使用预下载镜像离线部署的方式部署,请使用 kubeadm v1.11.1 版本 导出各版本镜像列表: kubeadm config images ...

  9. vs2010编译C++ 指向指针的指针

    #include "stdafx.h" #include <iostream> using namespace std; int _tmain(int argc, _T ...

  10. hadoop-mapreduce的官方示例的测试执行方法

    1.根据给出的精度参数计算 pi : hadoop jar /export/servers/hadoop-2.6.0-cdh5.14.0/share/hadoop/mapreduce/hadoop-m ...