搜索
热搜: NOIP OIer 神牛
查看: 393|回复: 4

1107【体特生选拔】

[复制链接]

主题

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-7-14 18:07:10 | 显示全部楼层 |阅读模式
https://oj.singera.cn/dist/quesInfo?problem_id=1107


根据题目描述,我们可以得出以下结论:
解题步骤:
1.从高到低排序
2.算出分数线
3.输出得分不低于分数线的人


--如何求解分数线?
m*150% = m*1.5




首先
要给所有分数进行排序
然后
算出m*1.5向下取整
找到排名m*1.5的分数即可




这里采用冒泡排序来解题
要注意分数相同时需要比较编号
  1. #include<iostream>
  2. #include<string.h>
  3. using namespace std;
  4. struct person{
  5.         int id;
  6.         int score;
  7. }one[5000];
  8. int main(){
  9.         int n,m,i,j,t,k,d;
  10.         cin>>n>>m;
  11.         int count = 0;
  12.         for (i=0;i<n;i++)
  13.         {
  14.                 cin>>one[i].id>>one[i].score;
  15.         }
  16.         for (i=0;i<n-1;i++)
  17.         {
  18.                 for (j=i+1;j<n;j++)       
  19.                 {
  20.                         if (one[i].score<one[j].score)
  21.                         {
  22.                                 swap(one[i],one[j]);
  23.                         }
  24.                         if (one[i].score==one[j].score)
  25.                         {
  26.                                 if (one[i].id>one[j].id)
  27.                                 {
  28.                                         swap(one[i],one[j]);
  29.                                 }
  30.                         }
  31.                 }
  32.         }
  33.         d = int(m*1.5);
  34.         k = one[d-1].score;

  35.         for (i=0;i<n;i++)
  36.         {
  37.                 if (one[i].score>=k)
  38.                 {
  39.                         count++;
  40.                 }
  41.         }
  42.         cout<<k<<" "<<count<<endl;
  43.         for (i=0;i<count;i++)
  44.         {
  45.                 cout<<one[i].id<<" "<<one[i].score<<endl;
  46.         }
  47.         return 0;       
  48. }
复制代码



回复

使用道具 举报

主题

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2022-7-14 18:16:11 | 显示全部楼层
有人回复吗?
回复

使用道具 举报

主题

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-7-14 19:23:39 | 显示全部楼层
辋驷謿,你也太活跃了
回复

使用道具 举报

主题

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2022-7-14 19:55:24 | 显示全部楼层
你发的繁体字?
回复

使用道具 举报

主题

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-7-15 10:26:00 | 显示全部楼层

不是                                 
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

津ICP备19006949号-1 | 津公网安备12010102000465号

快速回复 返回顶部 返回列表